注意:这可能似乎就像一个超级用户问题,但请完整阅读 - 这是一个编程问题。
所以they removed GDI acceleration from Windows 7,现在经典的主题动画看起来很糟糕。而且因为这是一个基本的设计变更,没有办法解决它,对吧?
错!
今天当VLC媒体播放器运行时切换到经典视图(关闭Aero)时,我感到非常惊讶。通常情况下,最大化/最小化动画看起来很糟糕(它们几乎不会出现),但在VLC运行时,动画非常完美,就像在XP上一样!当我关闭VLC时,它们又变得可怕了。 (当媒体播放时,它们比玩家闲置时更好。)
在我开始制作3D游戏并注意到动画已经改进之前的某个时候我再现了这个,但我认为这是与DirectX相关的问题。我试图弄清楚哪些函数调用导致了改进,但没有运气。所以当我注意到与VLC相同的行为时,我感到非常惊讶,因为它不播放视频,只有音频(甚至不是可视化!) - 然而播放音频提高了我的GDI图形性能,使得我认为也许,也许,Windows 7确实有某种GDI加速。 (?)
如果这有所不同,我的显卡是NVIDIA GT 330M,PowerMizer关闭。我控制了我能想到的每个变量,除了VLC是否正在运行,所以我几乎可以排除任何与显卡功能相关的内容。
所以,现在我的问题是:
有没有人知道哪些API调用可能导致这种改进,以及它们是否实际与图形有关?
我已经尝试制作一个调用IDirectDraw::CreateSurface
的程序,并且只是在后台运行(希望它能像我的3D游戏那样做),但是没有;没有任何区别。我甚至不确定它是否与图形相关的API调用可能导致这种情况,因为就像我说的那样,VLC正在播放音乐,而不是视频。对于我来说,当多媒体应用程序运行时,为什么性能会改进,这是一个谜,所以任何洞察内部发生的事情都会受到赞赏。 :)
答案 0 :(得分:5)
它可能只是系统时钟节拍周期的一个因素。运行VLC可能会将时钟周期改为每1ms,从而使动画更顺畅地运行。
使用Clockres检查系统计时器分辨率,无论是否运行VLC,都可以查看它是否有所作为。
请参阅timeBeginPeriod
功能,了解如何自行设置时间段。请记住,周期越短,您的CPU在蜱之间睡眠的时间就越短,并且它会越热。