OpenGL状态重置



我在AW和处理方面遇到了一些问题(他们不建议这样做(,我大部分时间都无法清楚起点,并且处理绘制循环停止工作,这些问题是各种各样,但似乎主要与图形矩阵深度相关。

看到此问题似乎与起始条件有关(如果启动开始,它将不会以后失败,否则它不会启动(。我想知道是否有某种方法可以完全层面图形状态,即使以全屏运行应用程序为代价。

因此,问题主要是,我该如何(如果可能的话(在语法上获得新的开始?当然,欢迎任何其他解决方案或输入,并且可能有些用于处理本身。

无法重置OpenGL上下文执行默认状态。即使存在,这也无法解决您的问题,因为您的麻烦似乎是由于您的代码完成后不会留下的状态下的OpenGL上下文,因此它在进入时发现了它。那当然不是默认状态。

但是,您可能会为代码创建OpenGL上下文,然后暂时切换到该上下文,以执行您的操作,然后返回原始内容。Windows与OpenGL上下文无关,并且OpenGL上下文不绑定到Windows;它是您想要的选择(只要像素格式兼容,它们是大多数窗口/上下文设置的(。

如果您需要/需要访问OpenGL对象(纹理,缓冲对象(通过处理创建的openGL对象(纹理,缓冲对象(,则可以共享上下文数据(不会共享状态,因此您是安全的(。只是不要修改或彻底删除代码不拥有的内容。

您将遇到的一个问题是使用Jogl/AWT来完成所有问题。快速浏览一下库参考,我没有发现明显的方法来弄清楚当前活动的OpenGL上下文绑定到哪种绘制;不过,很容易获得当前的上下文。但是,jogl本身是开源的,因此,如果没有随时可用的方法来实现这一点,那么实施应该很容易(也值得添加图书馆(。

没有标准的OpenGL函数可以执行此操作,但是您可以创建自己的功能以将所有绑定,选项和功能重置为OpenGL标准中定义的默认值。但是,正如 @datenwolf 在他的回答中所说,也许在上下文之间切换更适合您的问题。选择最适合您用例的解决方案。

相关内容

  • 没有找到相关文章

最新更新