Windows Vistaから、Windowsの表示関連機能はDirectX系へ移行してきた。Windows 7では新たに、「Direct2D」および「DirectWrite」が導入された。今回はWindows 8で加えられる表示機能の変更と、そこでGPUが果たす役割について説明しよう。
Vistaを基盤に性能面を改善した
Windows 7のグラフィックシステム
Direct2Dは、パソコンに搭載されたGPUを使って描画する2Dグラフィック表示APIだ(関連記事)。Direct3Dに対応したGPUがあれば、Direct2Dはこれを利用した描画を行なう。図形の周囲にアンチエイリアス処理などが行なわれるため、既存のGDIに比べて質の高い描画を、より高速で可能としている。
DirectWriteは、Direct2Dの上で動作するテキスト描画機能を提供するものだ。文字の描画だけでなくレイアウト機能までを持ち、高品質なテキスト描画を可能にする。こちらもアンチエイリアス処理などが可能で、GDI経由のテキストよりも高品位になる。
ただしこれらの恩恵を受けるためには、アプリケーションがこれらのAPIを使うように書き直す必要がある。マイクロソフトもInternet Explorer 9やWindows Liveメール、LiveメッセンジャーなどをDirect2DやDirectWriteで書き直したが、すべてのマイクロソフトアプリケーションが書き直されたわけでもない。Windows用に過去に作られたアプリケーションは、そのままではGDIを使って描画している。
Windows 8スタイル(旧称Metro)アプリケーションは、最終的にDirect2DやDirectWriteで描画を行ない、C++で書かれたアプリケーションは直接DirectXを呼び出す。一方「HTML5+JavaScript」で作られたアプリケーションの描画は、Internet Explorer 10(以下IE10)の描画に依存する。しかしIE10もDirect2D/DirectWriteで描画するので、結局はDirectX系での描画となる。つまりWindows 8スタイルのアプリケーションは、DirectXアプリケーションといってもいい。
ちなみにVistaでのGDIは、システムメモリーに対してソフトウェア描画を行なわせていて、これを「Desktop Window Manager」(DWM)へ転送。DWMでデスクトップの表示を合成していた。これに対してWindows 7では、DWMが管理する描画領域(DXGIサーフェイス)に対して、ソフトウェアだけでなく一部をGPUのハードウェア側で描画するようになった。そのため、システムメモリー上にバッファを確保する必要も、それを転送する必要もなくなり、メモリー使用量が減って性能は向上した。
また、これまではGDIを使って描画できるプロセスは同時にひとつに限られていた。複数のGDI対応アプリケーションが同時に動作している場合には、順番にこれを処理する必要があった。もともとのWindowsでは、GDIの下にドライバーがあったため、順番に描画するしかできなかったのである。しかもマルチプロセッサー対応のため、メモリーロックなども行なわれていたから、性能への悪影響は少なくない。
VistaではGDIをソフトウェア処理として、DirectXを利用したグラフィックシステムへの移行を狙ったが、現実問題としてGDIアプリケーションは多数あり、結果的にシステムの負荷を高めてしまうことになっていた。しかしWindows 7では、複数のGDIアプリケーションが同時に描画処理を行なえるようにした。そのためVistaよりもシステム効率が上がり、ある程度の描画性能も向上。マルチコアなどのCPUパワーを効率的に利用できるように改良された。
この連載の記事
-
第34回
PC
Windows 8の狙いは、UIの変化よりもAPIの変化が本質 -
第33回
PC
Windows 8が動作しなくなった? 新しくなった修復機能 -
第32回
PC
Windows 8でIMEに求められる新しい要素とはなにか? -
第31回
PC
Windows 8の無線LANをコマンドラインで細かく制御 -
第30回
PC
Windows 8をマウスで使いやすくするレジストリの小技 -
第29回
PC
周辺機器・アプリがWindows 8/RTで動くか確認する方法 -
第28回
PC
Windows 8のキーボードショートカットを全公開 -
第27回
PC
Windows 8が使いにくい? マウスを変えると印象も変わる -
第26回
PC
実はNFCに対応しているWindows 8 ただしアプリは不足 -
第25回
PC
実は扱いがまったく異なるWindows 8でのタッチパネル -
第24回
PC
Surfaceから見えるWindows RTの実像と、将来PCへの影響 - この連載の一覧へ