1. 没有历史遗留问题
Mac OSX用户数很少,做起事来不需要顾忌什么向后兼容。经历过几次大刀阔斧的改动,引入了全新的界面框架Cocoa,强制程序一律使用它。这个Cocoa再怎么说都是新时代做出来的东西,比起Windows几十年前就诞生的User32/GDI32在适配DPI缩放的问题上肯定要轻松得多。而且虽然我并不了解Cocoa,但根据一些迹象表明,Cocoa似乎是有布局概念的。
2. 所谓4点合为1点的缩放方式只是另一种的DPI虚拟化缩放
Mac OSX的所谓4点合为1点的缩放方式本质上只是另一种的DPI虚拟化缩放,对于支持缩放的程序,系统告诉程序要放大2倍,对于不支持缩放的程序,系统谎称当前屏幕分辨率只是1280X800,让程序以96DPI来渲染界面,然后系统对界面执行2倍像素缩放,但界面会模糊。最后,由于屏幕像素密度为200DPI,在用户看起来,4个像素点就像1个像素点那样。
这本质上跟Windows的处理方式根本没有区别,支持缩放的就缩放,不支持缩放的就对程序谎报分辨率,让它先以正确的界面布局渲染界面,然后系统执行像素缩放。其实处理方式是一样的,只是苹果玩了个概念,在玩文字游戏而已。苹果对于不兼容的程序也是会模糊的。真正的区别在于Mac OSX的技术比较新(但不及WPF新),而且还是强制使用的,开发者想偷懒都不行,所以缩放起来根本不会产生什么问题。