调用GL_INVALID_OPERATION
时出现glGenTextures
错误,我不知道可能对此负责。
我正在使用QtOpenGLWidget来检索上下文,它在我调用glGenTextures()
时看起来有效(至少我有一个glGetString(GL_VERSION)
和glxGetCurrentContext()
都返回了不是垃圾的东西)
从QOpenGLWidget::resizeGL()
方法调用错误代码。在QOpenGLWidget::initializeGL()
我成功编译了一些着色器程序,并创建/上传数据到VAO / VBO。
所以我的问题是:
glGenTextures()
的常见错误案例有哪些,除了根本没有OpenGL上下文编辑:因为我坚信这与我的机器没有合适的GPU有关,here is the return of glxinfo。
答案 0 :(得分:2)
我不认为这是glGenTextures()
来电,导致错误。此调用只能抛出GL_INVALID_ENUM和GL_INVALID_VALUE。很可能其他一些调用是错误的,新纹理的bind()
是无效调用。
尝试使用glGetError()
本地化您的违规通话。
您可以在此处查看有关gl调用可能失败的文档: https://www.opengl.org/sdk/docs/man4/html/glCreateTextures.xhtml
答案 1 :(得分:0)
好的发现了问题。看起来一个着色器默默地没有正确编译(硬编码着色器没有检查正确的编译,不正确的#version)并且这弄乱了下一个OpenGL错误检查glGenTextures()
。