没有Aero组合的没有vsync; 无法在CreateDesktop()制作桌面上打开Aero

Dis*_*ame 10 windows opengl sandbox composition

我正在使用OpenGL进行渲染.我的东西是沙箱,所以我使用CreateDesktop()来防止破碎攻击.但是,新桌面在出于任何原因创建时没有Aero组合(虽然默认情况下是这样)并且尝试使用DwmEnableComposition()启用它失败.我不知道为什么,或者如何解决这个问题.DwmEnableComposition()在默认桌面上运行正常.有没有办法让vs vsync在没有合成的情况下工作?即使从nvidia的驱动程序控制面板强制执行,我也无法做到这一点.这里有什么解决方案?

我正在使用Windows 7.在Windows 8中,他们说无法禁用合成,所以我想知道这个问题是否会再存在.

小智 2

据我所知,DWM 合成仅限于 Windows 7 中的默认桌面,并且在其他桌面上始终处于禁用状态。您可以在 UAC 提示符和登录/ctrl+alt+del 屏幕上看到这一点,这些屏幕没有启用 Aero 效果。我非常确定 Windows 8 已经改变了这一点,因此所有桌面现在都由 DWM 渲染。