OpenGL非排他性全屏模式(又称全屏无边界窗口)

OpenGL Non-exclusive Fullscreen Mode (A.K.A. Fullscreen Borderless Window)

本文关键字:边界 又称 窗口 模式 排他性 OpenGL      更新时间:2023-10-16

我正在尝试获得对全屏无边界窗口的支持,但我发现的任何信息都没有帮助。

无论是否将窗口设置为WS_EX_TOPMast,窗口将始终处于独家全屏模式。我使用全屏无边界窗口模式在游戏中检查了窗口样式,而我使用的样式是相同的。

我知道它处于独家全屏模式,因为WDM停止为我的窗口呈现小型航空预览的东西。我还从聚焦和不关注窗户的情况下得到了桌面闪烁。

我能够获得与我想要的类似行为的唯一方法是欺骗Windows认为我不想要全屏模式。我这样做的方法是通过1px调整窗口位置,以使其与屏幕的位置和大小不匹配。这会阻止Windows自动打开独家全屏模式。

我在DirectX中知道,此解决方案仅仅是为了创建设置为True的设备。但是,我从未在OpenGl中看到过这样的东西。

根据第一个评论进行编辑:

我没有使用任何第三方库来窗口,只需win32和opengl。

编辑:

我将WS_POPUP用作窗口样式。在我进行的某些DirectX测试中,使用相同的窗口样式,我可以通过更改"窗口"的属性来正确创建一个完整的无边界窗口或全屏独家窗口。

对于硬件,我正在使用Win7 x64上的最新驱动程序的GTX690。

在选择pixelformat/setpixelformat的pixelformatDescriptor中使用pfd_support_composition。

请参阅OpenGL管道通讯 - 卷003