このページの本文へ

前へ 1 2 3 次へ

あなたの知らないWindows ― 第21回

Windowsの画面表示を変えるDirect2DとDirectWrite

2010年01月21日 12時00分更新

文● 山本雅史

  • この記事をはてなブックマークに追加
  • 本文印刷

 本連載でも何度か述べているように、Windows 7では新しいグラフィックAPI「Direct2D」「DirectWrite」により、画面表示が高速になり、なおかつ文字が綺麗に表示できるようになった。

 WindowsはWindows Vistaで、DirectXを画面表示に使うアーキテクチャーに変更された。しかし、テキスト表示や2D図形、線を表示するには、新しく導入されたグラフィックスサブシステム「WPF」(Windows Presentation Foundation)を、アプリケーションが直接扱う必要があった。

DirectXとWPFは、GPUのハードウェアアクセラレーションが利用できる。一方旧来のGDI/GDI+は、GPUのサポートが使えない(TechDays 2009資料より引用)

 WPFは高度な機能を有していたものの、単にテキストや2Dグラフィックを表示するだけに使うには、いささかプログラミングが難しかった。そのためVistaになっても多くのアプリケーションが、昔からあるAPI「GDI」「GDI+」をそのまま利用していた(Windows XPとの互換性という面からも、WPFで全面的に書き換えるわけにはいかなかった)。

 Windows 7ではVistaでの反省を活かして、テキスト表示専用のDirectWrite、2Dグラフィック専用のDirect2DというAPIが用意された。

Direct2DとDirectWriteは、DirectXの上に構築されている

DirectWrite

 DirectWriteとDirect2Dは、DirectXを通じてGPUの機能を利用する仕組みになっている。そのため、GDIを使用するよりも、場合によっては数倍高速に画面表示が行なえるという。さらに、一部をGPUで処理するため、CPUの負荷が軽くなるといったメリットもある。

 例えばDirectWriteでは、液晶ディスプレーで見やすいようにフォントをスムージング処理する「ClearType」機能をGPU側で処理することで、CPUに負荷がかからないようにしている。また、表示デバイスの解像度に依存しない、自由なレイアウトも実現できる。もちろん、既存のGDIに準じたレイアウトと描画が可能だ。

 DirectWriteでは、文字の字詰めや行間の設定もコントロールできる。この機能を使えば、欧文送り(アルファベットは文字を詰めて、綺麗に表示する)、漢字やひらがななども、見やすく表示することが可能だ。さらに、文字に色をつけるグラデーション機能で、GPUを使って色をつけられる。

DirectWriteの機能DirectWriteでは、OpenTypeが持つさまざまなタイポグラフィが利用できる。ひとつのフォントから、コマンドひとつでこのような飾り文字が表示できる
GDI(上)とDirectWrite(下)で同じテキストを表示。フォントのサブピクセルをシェーディングすることで、フォントのギザギザが目立たなくなっている

前へ 1 2 3 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

富士通パソコンFMVの直販サイト富士通 WEB MART

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン