【发布时间】:2009-03-16 05:03:37
【问题描述】:
我有一个使用 GLSL 着色器的项目。
此项目旨在不向标准输出打印任何内容,除非出现问题或您明确打开了一些额外的调试输出。
当着色器编译失败时,glGetProgramInfoLog 给出的日志长度>0,有时当它成功时>0,并给出编译警告。当你有一个可以完美编译的着色器时,日志长度是
为了我的罪过,我还在带有英特尔集成显卡的笔记本电脑上进行了一些开发。代码运行良好,但每当我执行着色器编译时,日志都包含:
“着色器已成功编译为在硬件上运行”
这很烦人,因为我现在无法决定是否应该将字符串打印出来,除了某种字符串分析,例如:
strstr("successfully",log)
希望这很明显为什么不受欢迎。 如果有的话,我如何判断一条消息是否值得使用 OpenGL api 打印出来?
编辑:
如果我使用glGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err);,那么我不会收到编译警告,只会收到错误。
【问题讨论】: