gpt4 book ai didi

c++ - glGetShaderiv 慢吗?

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:36 25 4
gpt4 key购买 nike

我已经开始使用 OpenGL 进行编程,并且正在编写着色器和程序类。我查看了很多其他库并注意到其他一些库缓存了 glGetShaderiv 返回的值。

是否真的需要缓存这些值?或者在我需要获取编译状态时调用 glGetShaderiv(shaderID, GL_COMPILE_STATUS, &result); 是否安全。

glGetShaderiv 是否足够慢以至于需要缓存?

最佳答案

不必要地调用 glGet* (...) 通常是不可取的,但这很可能是您可以查询的最简单的事情。

GL_COMPILE_STATUS 是一个简单的 bool 值,它或多或少是一个补充属性,因为 glCompileShader (...) 不返回任何内容。驱动程序不会在您查询其状态之前推迟编译,这只是 glCompileShader 如果它确实返回了一些东西就会返回的内容。

在调用 glCompileShader (...) 很久之后,您发现自己查询着色器编译状态的频率有多高?实际上,除了在您尝试编译着色器之后立即查询编译状态之外,我看不出任何时候查询编译状态有多大用处。编译着色器只是构建工作 GLSL 程序所需的更大机器中的一个小齿轮。事实上,着色器对象实际上可以在构建程序后丢弃。

关于c++ - glGetShaderiv 慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23565187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com