OpenGL非排他性全屏模式(又称全屏无边界窗口)
OpenGL Non-exclusive Fullscreen Mode (A.K.A. Fullscreen Borderless Window)
我正在尝试获得对全屏无边界窗口的支持,但我发现的任何信息都没有帮助。
无论是否将窗口设置为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
相关文章:
- std::当在256字节边界上写入整数时,流的奇怪行为
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 使用不变量来确定二分搜索中的边界条件
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 在 64 位边界上对齐C++结构数组?
- std::数组边界检查如何工作?
- CGAL:如何创建填充边界曲线的曲面网格?
- 如何格式化我的文本文件以使其不会一遍又一遍地重复同一行?
- 在 c++ 中是否允许创建具有运行时边界的数组?
- 如何解决隐式转换丢失整数精度:'size_t'(又名"无符号长")到'int'警告?
- 是否可以跨 dll 边界返回常量引用/指向 std::vectors?
- C++11:16 字节原子<>变量是否在 16 字节边界上自动对齐,从而允许CMPXCHG16B指令?
- 如何正确理解回车(又名\r)?
- 为什么当我输入一个大数字时,输出会一遍又一遍地重复?
- C++关键字的用途:&=(又称"and_eq")
- 如何在C 11中使用variadic模板来生成左相关表达式(又称左折)
- 网络对分布式构建又称Distcc的影响
- OpenGL非排他性全屏模式(又称全屏无边界窗口)
- 在C++中多次标记具有相同类型的并集(又称变体)
- 从“const BYTE*{又称const unsigned char*}”到“BYTE_PTR{又称unsigned