C++ Windows 10桌面窗口管理器交换时间?
关于Windows 10中的桌面窗口管理器(又名DWM),我有几个问题: 背景:对于一个用C++编写的OpenGL应用程序,我需要精确地处理OpenGL中前后缓冲区的交换,并在OS级上实现这些命令。(我知道Windows 10或Windows一般来说是一个不好的选择,但还有其他限制因素)C++ Windows 10桌面窗口管理器交换时间?,c++,windows,opengl,glfw,dwm,C++,Windows,Opengl,Glfw,Dwm,关于Windows 10中的桌面窗口管理器(又名DWM),我有几个问题: 背景:对于一个用C++编写的OpenGL应用程序,我需要精确地处理OpenGL中前后缓冲区的交换,并在OS级上实现这些命令。(我知道Windows 10或Windows一般来说是一个不好的选择,但还有其他限制因素) 问题1:我的互联网研究表明DWM管理着第三个缓冲区(使可视化成为三缓冲系统),我无法控制它,因此造成了不可预测的延迟。调查还表明,以全屏模式打开OpenGL上下文可以绕过这一问题。这个信息正确吗 问题2:这种
- 问题1:我的互联网研究表明DWM管理着第三个缓冲区(使可视化成为三缓冲系统),我无法控制它,因此造成了不可预测的延迟。调查还表明,以全屏模式打开OpenGL上下文可以绕过这一问题。这个信息正确吗
- 问题2:这种延迟是由操作系统随机指示DWM复制缓冲区造成的吗
- 问题3:实际延迟时间有多长?我的调查显示,延迟时间在1毫秒到50毫秒之间,但没有可靠的来源
我不知道这是否重要,但我通过GLFW和GLEW使用OpenGL>P>虽然我无法找到问题2和3的答案,但联系英伟达的支持提供了问题1的答案。 Nvidia声明在全屏上下文中呈现的应用程序无法访问DWM。它只处理以窗口模式呈现的应用程序 警告:他们还说这是故意的。考虑到微软试图强迫用户/程序员使用DWM的事实,无法保证这个设计决策会保持多久不变 来自Nvidia的原始邮件: [……] 在与我们的专业部门核实您的请求后,请注意,当游戏或任何东西处于全屏状态时,您无法访问此Windows功能[注释:DWM]。这是故意的。如果您想访问此功能,需要将其设置为窗口模式 [……]
<>虽然我无法找到问题2和3的答案,但联系英伟达的支持提供了问题1的答案。 Nvidia声明在全屏上下文中呈现的应用程序无法访问DWM。它只处理以窗口模式呈现的应用程序 警告:他们还说这是故意的。考虑到微软试图强迫用户/程序员使用DWM的事实,无法保证这个设计决策会保持多久不变 来自Nvidia的原始邮件: [……] 在与我们的专业部门核实您的请求后,请注意,当游戏或任何东西处于全屏状态时,您无法访问此Windows功能[注释:DWM]。这是故意的。如果您想访问此功能,需要将其设置为窗口模式 [……]