2008-10-31

Introducing Direct2D and DirectWrite

Windows 7: Introducing Direct2D and DirectWrite | pdc2008 | Channel 9

PDC2008の動画が来た。Windows 7の新しいAPI、Direct2DとDirectWriteについて。その概要と実際のコード。

Direct2Dは2D描画用の新しいAPIで、Direct3D 10.1の上に構築されている。つまり、GPU支援による描画ができる。また、アンチエイリアスなどの機能も使用可能で美しい描画ができる。主にC++のネイティブコード用に作られている。完全にソフトウェアだけで動作することもでき、動画のデモでは、ソフトウェアだけでも、GDI+より速いとされている。API自体はCOMベース。ただし、GDI/GDI+などへ描画することもできるし、GDI/GDI+から描画することもできる。が、その場合は遅くなる。

DirectWriteは文字の描画用の新しいAPIである。GDI/GDI+やDirect2D、あるいはビットマップ上への描画ができる。ClearTypeやOpenTypeフォントの多くの機能をサポートしている。Direct2D上に描画する場合は、GPUによる支援が得られる。また、わざわざシステムにフォントファイルをインストールしなくても使用できるという機能もある。ブラウザやワードプロセッシングを実装する時ぐらいにしか必要でないようなローレベルな機能もあるようだ。(日本語でローレベルとか低レベルとか低級などというと、どうも劣ったという意味に感じられてしょうがない。いっそのことLow Levelにするべきか。)

ほんの少しだけ触れられていた、UIAnimationが気になるところだ。あの手のものはCOMではなく、本当のC++のライブラリ(COMのような、言うなれば単なる構造体と関数ポインタじゃなくて)としてあったほうが使いやすいだろうけれど。

もちろん、これらの機能がXPに提供されることはない。コーラを飲んだらゲップがでないくらいにありえない。Vistaには提供されるかもしれない。少なくともVistaには提供されて欲しいところだ。

Tom's Blog(Direct2Dについて解説するために開設されたブログ)

No comments: