みなさんはDPIってしってますか?
Dot Per Inch.平たく言えば1インチあたりの点の数で、Windowsでは96, Macintoshでは72(たしか)に設定されていることになっている。
実際のモニタサイズによって変わるけどその辺は感覚的に捉えてください。
ちなみにプリンタはしょぼレベルで300、レーザなんかだったら1200という数字なのでその差は歴然。
DPIねたで絡んでくるLonghornの機能といえば、デフォルトDPIを120に?、アイコンをベクタ化、DPIスケーリング機能、と目白押しである。
Avaronで検討されているのは、ウィンドウは3D空間に置かれた板の上のテクスチャに成るということで、拡大縮小はお手のものである。
なぜ高DPIが必要なのか、まず第1にはユーザビリティの向上である。
ながらく画面解像度は640x480(400)が続いた後短い800x600時代が合った後1024x768全盛時代が続いた。
ただしこの世もそろそろ衰退である。新たな1280x1024, 1600x1200全盛時代にはsystemフォントはあまりにも小さい(と思う人が多い、ちなみに私は1600x1200ノート標準設定愛用(^^;;)
次にフォントの向上。WindowsXPでClearTypeなんて実装されたけど、結構隠れ機能っぽい扱い。すべてをビットマップフォントからTrueTypeフォントにするとMacOSXのように不満が出るのは間違い無いんだろうけど、DPIの向上は素直にきれいになる。
最後にアクセシビリティの向上である。
まず現在のWindowsアプリケーションでは、独自の高DPIモードなどほとんどが考慮されていない。
HTMLはフォントサイズを5段階とはいえ自由に設定できるのと比べると雲泥の差である。
もちろんフォントサイズを固定している不適切なサイトも多いが、それらも全てはDPIスケーリング機能で解決する。
エリアを広げたければ従来と同じようにウィンドウの境界をつかんでのばす。拡大したければ拡大する。
すごい良いと思いませんか?
さて、では実際に我々Developerはどう備えたら良いのでしょうか。
.NetFrameworkに移行しましょう。
それでとりあえず第1段階はクリアである。.Net FrameworkのFormなどは全てシステムのDPI設定を元に自動でスケーリングしてくれる。
あとはきたるべきAvalon, Airを含むLonghornビルドの公開を待つのだ。(^^
現在一般の人間が入手できるのはPDC Build, Win HEC BuildというAvalonの入っていないビルドだけだ。
http://pc.watch.impress.co.jp/docs/2003/0509/kaigai01.htm
http://pcweb.mycom.co.jp/news/2003/10/22/23.html