Leopard Technology Series for Developers



Resolution Independence

The old assumption that displays are 72dpi has been rendered obsolete by advances in display technology. Macs now ship with displays that sport native resolutions of 100dpi or better. Furthermore, the number of pixels per inch will continue to increase dramatically over the next few years. This will make displays crisper and smoother, but it also means that interfaces that are pixel-based will shrink to the point of being unusable. The solution is to remove the 72dpi assumption that has been the norm. In Leopard, the system, including the Carbon and Cocoa frameworks, will be able to draw user interface elements using a scale factor. This will let the user interface maintain the same physical size while gaining resolution and crispness from high dpi displays.

The introduction of resolution independence may mean that there is work that you’ll need to do in order to make your application look as good as possible. For modern Cocoa and Carbon applications, most of the work will center around raster-based resources. For older applications that use QuickDraw, more work will be required to replace QuickDraw-based calls with Quartz ones.

 の部分で、解像度に依存しないGUIになるとか何とか。つまり現状では旧Mac OS時代に決めた72dpi基準で文字やパーツの大きさなどを決定しているのだけども、これだと最近の高精細液晶ディスプレイなどでは小さく表示されてしまう(←高精細化により一つの点の大きさが小さくなった為)。この問題を解決する為、解像度に依存する事なく見た目上同じ大きさで表示される様にしようという取り組み。

 実はこのネタ、Mac OS X登場の頃から取り組んでいたふしがあって、最初の方のDev版ではそうなっていたという話があったりした。そして、実はLeopardを待たずともどういうものなのか試す事はできて、Mac OS X 10.4を利用していてDevToolsをインストールしているなら、/Developer/Applications/Performance\ Tools/Quartz\ Debug.appを起動し、“Tools”->“Show User Interface Resolution”で表示されるダイヤログから数値を変更し何かしらのアプリケーションを起動してみて欲しい。指定する数値によって描画が乱れるケースがあるけれども、文字やパーツを様々な大きさに変えられる事が確認できるはず。