Linux,Windows和Mac这三种主要操作系统是否支持在全屏模式和窗口模式之间切换而无需重新创建窗口?重新创建是有问题的,因为它暗示着也重新创建OpenGL上下文,或者至少重新创建一些OpenGL对象。
这些平台上可以使用哪些API函数执行任务?
Windows:是的
X11 / GLX:是
MacOS-X:非常复杂。
首先是简单的事情:在Windows和X11中,没有诸如全屏模式OpenGL窗口之类的东西。它们都是常规的顶层窗口,您可以随时添加或删除窗口装饰(标题栏,边框)。如果删除窗口装饰并将窗口大小设置为最大,则实际上将获得全屏OpenGL窗口;否则,将显示为OpenGL。实际上,图形驱动程序足够智能,可以检测到这种情况,然后切换到快速通道。
现在是MacOSX。在MacOS X中,“窗口式”和“全屏”之间有明显的区别(恕我直言,这很烦人)。
好消息是,您可以访问基础上下文对象,该对象允许实现一些资源共享,因此您不必重新创建包含OpenGL对象的数据。
大胖免责声明:我从来没有像其他操作系统那样冒险地涉足MacOS X,因此我在MacOS X上有关此特定主题的实践经验只是理论上的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句