是否可以在不重新创建窗口的情况下切换全屏?

时间:2014-09-02 20:13:19

标签: opengl window cross-platform

Linux,Windows和Mac三大操作系统是否支持在全屏模式和窗口模式之间切换而无需重新创建窗口?重新创建是有问题的,因为它意味着重新创建OpenGL上下文,或至少一些OpenGL对象。

这些平台上有哪些API函数可用于执行任务?

1 个答案:

答案 0 :(得分:2)

Windows:是的

X11 / GLX:是的

MacOS-X:这很复杂。


首先是简单的东西:在Windows和X11中没有特殊全屏模式 OpenGL窗口这样的东西。它们都是常规的顶级窗户,您可以随时添加或删除窗口装饰(标题栏,边框)。如果删除窗口装饰并将窗口大小设置为最大化,则基本上可以获得全屏OpenGL窗口;实际上,图形驱动程序非常智能,可以检测到这种情况,然后切换到快速通道。


现在MacOS X.在MacOS X中明确区分WindowedFullscreen(恕我直言,这很烦人)。

好消息是,您可以访问底层上下文对象,该对象允许实现一些资源共享,这样您就不必重新创建包含OpenGL对象的数据。

Big Fat免责声明:我从未像使用其他操作系统一样深入MacOS X,所以我在MacOS X上对这个特定主题的实际经验只是理论上的。