为什么OS X没有与Windows相同的闪烁问题?
我正在阅读Larry Osterman最新的一篇关于
debugging a flickering problem in the Windows Vista/7 volume control的博客文章,我突然意识到,我记得在我的OS X笔记本电脑上看到应用闪烁.即使应用程序似乎写得不好也避免了我的经验中的闪烁问题.没有这个变成苹果与Windows的争论(请),为什么OS X应用程序似乎没有相同的闪烁问题?
我有麻烦相信,苹果开发人员在编程无闪烁的GUI方面是惊人的,而Windows程序员吮吸,那么原因是什么? OS X API是否需要所有GUI来实现双缓冲?虽然一些应用程序具有缓慢的双缓冲大小调整行为,但许多应用程序仍然避免闪烁. OS X的重绘流程与Windows基本不同,完全避免WM_ERASEBKGRND问题吗?还是有其他可能性,我没看到? 更新:谢谢你的答案.我希望我可以选择ken和cb160的答案,因为他们都是有帮助的.
Windows Vista / 7和OSX都使用合成引擎在屏幕上绘制光栅位图.这些合成引擎负责处理所有窗口的输出并绘制最终的屏幕图像.这种合成方法是如何在最小化码头和航空如何绘制半透明边界时使用精灵效果.它们还防止闪烁,就像位图填充屏幕的特定区域不可用一样,它将使用已经存在的图像而不是绘制空白区域.
自从第一次发货以来,OSX已经有了一个合成引擎.当时,很多人虽然这样做是一个疯狂的评价,因为当时所有的视频卡都在优化时绘制位图(即Windows按钮和边框),而不是合成图像.在OSX的后续版本中,合成功能被推送到GPU(在Quartz Extreme中),因此CPU占用了很大的负载,并且实现了更多的效果. 因为Windows合成器仅在Windows Vista中添加,然后只有当有GPU可用并且您具有正确的操作系统版本时,它并不像OSX中的Quartz Compositer那样无瑕疵.因为在Windows中并不总是使用合成器,所以当一个区域被空白并且负责绘图的应用程序不能够足够重新绘制该区域时,就会发生闪烁. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows API一日一练 88 EnumProcesses函数
- windows-server-2008 – 为Windows Server安装使用单个卷/驱
- windows-phone-8.1 – Windows Phone 8.1应用程序中的部署错
- Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
- 远程访问 – 如何在Windows 8 Professional上安装Server Ma
- windows-7 – 双任务栏图标android工作室
- 如何解决“’IAsyncActionWithProgress <>'在Win
- windows – findstr.exe无法正常工作
- ruadmin windows渗透
- Windows如何检测到它是否在线?
- [文档和源码分享] 基于WIN32 API界面编程实现的F
- microsoft-cognitive – LUIS:已添加具有相同密
- windows – 在NTFS卷上快速查找一组文件名,最好是
- windows-server-2008 – Windows Server 2008 –
- 在多个Windows服务器上运行命令
- windows-7 – 以编程方式限制Windows 7上任何应用
- 目录 – NTFS连接与符号链接(用于目录)[已关闭]
- windows – 防止以纯文本形式获取IIS物理路径凭据
- windows – masm32和masm之间的区别?
- windows – 如何添加关闭脚本(不是通过使用gpedi