如何判断OpenGL上下文何时发生变化

问题描述:

当通过lwjgl使用opengl时,如果通过使上下文无当前值(使用glfwMakeContextCurrent(0))使得opengl上下文变得不可用,则opengl调用全部返回结果。这可能会导致意想不到的结果,并且很难看到问题出在哪里。有没有什么方法可以告诉什么时候使用回调或某些东西切换上下文,以便能够提交适当的错误?如何判断OpenGL上下文何时发生变化

据我所知,lwjgl库使用几个不同的API',包括GLFW。如果您使用的是GLFWAPI创建上下文(或库是,它看起来像它从他们的网站),那么你可以要求接收上下文当前绑定到使用窗口:

glfwGetCurrentContext(); 

如果这返回NULL,它可能不会被绑定到任何窗口。您可以在glfwPollEvents()样式回调(或类似的东西)中实现此函数,并在检查上下文状态时输出错误消息。

+0

我该如何在glfwPollEvents()方法中实现它? – pdid

+0

不幸的是,我不太清楚Java是否足够了解你如何实现这一点。在C++中,我将通过使用glfwSet 回调来设置我想要针对每个特定对象轮询的方法,然后当我的对象在每个循环中更新时,该方法将与我设置的其他方法一起被轮询和更新。 – Flare