每当我调用一个函数来交换缓冲区时,我会从glDebugMessageCallback
说出很多错误:
glVertex2f已从OpenGL Core上下文中删除(GL_INVALID_OPERATION)
我已尝试同时使用GLFW和freeglut,但两种方法都没有正常工作。
当然,我还没有使用glVertex2f
。我甚至删除了所有渲染代码,看看我是否能找到导致它的原因,但错误仍然存在,就在glutSwapBuffers
/ glfwSwapBuffers
之后。
使用单缓冲也不会导致错误。
我已将上下文初始化为4.3,核心配置文件和标记的前向兼容性。
答案 0 :(得分:4)
正如评论中所解释的,这里的问题实际上是第三方软件,而不是您自己编写的任何代码。
当Steam覆盖或FRAPS等软件需要在OpenGL上绘制一些东西时,通常会在运行时将一些代码挂钩到应用程序的SwapBuffers
实现中来解决这个问题。
您正在处理仍然使用立即模式绘制其叠加层的软件(RivaTuner),这是每个缓冲区交换上无法解释的弃用API调用的来源。
答案 1 :(得分:0)
您有可以分享的代码吗?要么驱动程序有问题,要么在您的过程中尝试调用glVertex。您可以尝试使用glloadgen来构建一个仅包含OpenGL-4.3符号的加载程序库(并且只包含那些符号),这样当链接程序时,使用4.3规范之外的符号会导致链接错误。