gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:32:22 32 4
gpt4 key购买 nike

我在 GeForce 9800 GTX 上使用 OpenGL 3.3。 3.3 的引用页说,对 glBindFramebuffer 的无效操作指示未从 glGenFramebuffers 返回的帧缓冲区 ID。然而,我输出了 glGenFramebuffers 返回的 ID 和我稍后发送给 glBindFramebuffer 的 ID,它们是相同的。

但是,当我将 glBindFramebuffer 中的目标参数从 GL_DRAW_FRAMEBUFFER 更改为 GL_FRAMEBUFFER 时,GL 错误消失了。文档说我应该能够使用 GL_DRAW_FRAMEBUFFER。有没有不能绑定(bind)GL_DRAW_FRAMEBUFFER的情况?使用 GL_FRAMEBUFFER 而不是 GL_DRAW_FRAMEBUFFER 有什么危害吗?这是更大问题的征兆吗?

最佳答案

如果 glBindFramebuffer(GL_FRAMEBUFFER) 工作而 glBindFramebuffer(GL_DRAW_FRAMEBUFFER) 不工作,我们不是谈论这些的 EXT 版本函数和枚举(注意缺少“EXT”后缀),那么很可能你做错了什么。 GL_INVALID_OPERATION 是当依赖于不同状态的多个参数组合发生冲突时出现的错误。如果它只是一个缺失的枚举,你应该得到 GL_INVALID_ENUM。

当然,它也可能只是驱动程序错误。但是,如果不知道您的代码是什么样子,就无法知道。

关于c++ - 使用 GL_DRAW_FRAMEBUFFER 目标时,glBindFramebuffer 会导致 "invalid operation"GL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742865/

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