c++ - glBindFramebuffer在使用GL_DRAW_FRAMEBUFFER目标时导致"invalid operation" GL错误

  显示原文与译文双语对照的内容
0 0

我在一个 GeForce 9800 GTX上使用 OpenGL 3.3 。 3.3的引用页表示glBindFramebuffer的无效操作表示未从glGenFramebuffers返回的帧 that 。 但是,我输出glGenFramebuffers返回的ID以及稍后发送给glBindFramebuffer的ID,它们是相同的。

然而,当我将glBindFramebuffer中的目标参数从GL_DRAW_FRAMEBUFFER更改为GL_FRAMEBUFFER时,GL错误就消失了。 文档说明我应该能够使用 GL_DRAW_FRAMEBUFFER 。 在任何情况下,你不能绑定到 GL_DRAW_FRAMEBUFFER? 使用GL_FRAMEBUFFER而不是GL_DRAW_FRAMEBUFFER有什么危害? 这是一个更大问题的症状?

时间: 原作者:

0 0

如果 glBindFramebuffer(GL_FRAMEBUFFER)glBindFramebuffer(GL_DRAW_FRAMEBUFFER) 不知道,我们正在讨论这些函数的EXT版本和枚举( 注意缺少""后缀),那么很可能你已经做了错误的事情。 GL_INVALID_OPERATION是当依赖于不同状态的多个参数的组合发生冲突时所产生的错误。 如果它只是一个缺少的enum,你应该得到 GL_INVALID_ENUM 。

当然,它可能只是一个驱动 Bug 。 但是不知道你的代码是什么样子,就无法知道。

原作者:
...