Direct2D
Direct2Dは、GDI/GDI+およびDirect3Dと相互運用性のある高速かつ高精細な2Dグラフィックスを提供するAPIで、Windows 7とWindows Server 2008 R2以降のWindowsに実装されているDirectXの一部である。Direct2D 1.0に関してはWindows VistaとWindows Server 2008でもプラットフォーム更新プログラムKB971644を適用することで利用可能である[1]。Windows Vista以降、ハードウェア アクセラレーションが廃止され、Direct3D上でのソフトウェア実装となってしまったGDI、およびWindows XP以前からソフトウェア実装であったGDI+の後継APIとして位置づけられている。
Windows 8およびWindows RTでは、印刷機能やDirect3Dプログラマブルシェーダーとの連携などを強化したDirect2D 1.1が追加実装されている。Windows 8.1ではJPEG YCbCrやDDS圧縮フォーマットに対応したDirect2D 1.2が追加実装されている。また、Windows 10ではグラデーションメッシュ (gradient mesh) などに対応したDirect2D 1.3が追加実装されている。これらの後継プラットフォーム上ではWindows 7までのDirect2D 1.0も引き続き利用可能である。
特徴
[編集]次のような特徴を持っている。
- ネイティブCOM APIである。つまりC++向けインターフェイスが第一に用意される。
- Direct2D 1.0はDirect3D 10.1上に、Direct2D 1.1はDirect3D 11.1上に、そしてDirect2D 1.2はDirect3D 11.2上に構築されており、それらとの相互運用性(DXGIとの相互運用性)が確保されている。Direct3Dテクスチャへの描画を行なうことも可能である。
- GDIおよびGDI+との相互運用性も確保されており、Direct2DのレンダーターゲットからHDC (Handle to a Device Context、デバイス コンテキスト) を取り出してGDI/GDI+で描画したり[2]、逆にHDCをDirect2Dの描画先にしたり[3]することが可能である。
- ハードウェア(グラフィックスカード)がDirect3D 9以上に対応していれば、ハードウェア アクセラレーションが行なわれる(使用不可能であればソフトウェアにて描画されるフォールバックソリューションが提供される)[4]。
- デバイス非依存で高DPI環境にも対応している[5]。
- テキスト(文字列)の描画を行なうには、前述のGDI/GDI+との相互運用を行なうか、DirectWriteと連携することになる。
- ブラシやパスといった要素はGDI+のAPIをほぼカバーしており、.NET用ベクターグラフィックスAPIであるWPFとも類似性があるが、保持 (retained) モードではなく直接 (immediate) モードの高速描画用途に最適化されている[6]。
- Windows 8/RTでは、WindowsストアアプリでのXAMLによるGUI描画に、Direct2D 1.1による直接描画を合成することができる。
- Direct2D 1.1では描画内容をプリンターデバイスに出力して印刷することも可能。
Windows 8.1のDirect2D/DirectWriteでは、カラーフォント(カラー絵文字)の描画がサポートされ[7]、Windows 10 Anniversary Updateではさらにサポートが改善された[8][9]。Windows 10 Creators UpdateではSVGレンダリングなどのサポートが追加された[10]。
導入事例
[編集]WebブラウザーのInternet Explorerはバージョン9.0以降、またWindows向けのMozilla Firefoxはバージョン4.0以降から、レンダリングにDirect2Dを使用して表示高速化を図っている。
Microsoft Officeはバージョン2010で一部の画面表示にDirect2Dによるアクセラレータを活用している[11]。
CADソフトのJw_cadはバージョン8でDirect2Dアクセラレータを採用している[12]。
Windows OS と使用可能なバージョン
[編集]Direct2D はDirect3D 10.1/11.x上に構築される高レベルAPIのため、Windows OSのバージョンによって使用可能なバージョンが制限される。下記に対応バージョンを示す(サーバー用OSは省略)。
- Direct2D 1.0
- Windows Vista SP2 + Platform Update、またはWindows 7以降で使用可能。
- Direct2D 1.1
- Windows 7 SP1 + Platform Update、またはWindows 8以降で使用可能。
- Direct2D 1.2
- Windows 8.1以降で使用可能。
- Direct2D 1.3
- Windows 10以降で使用可能。
関連項目
[編集]- DirectX
- DirectWrite
- Direct3D
- Graphics Device Interface
- DirectDraw
- Windows Imaging Component
- Skia
- cairo
脚注
[編集]- ^ “Windows Server 2008 プラットフォーム更新プログラムと Windows Vista プラットフォーム更新プログラムの説明”. サポート技術情報. マイクロソフト (2009年10月27日). 2015年2月27日時点のオリジナルよりアーカイブ。2009年10月31日閲覧。
- ^ “ID2D1GdiInteropRenderTarget (d2d1.h) - Win32 apps” (英語). learn.microsoft.com. Microsoft Learn. マイクロソフト (2021年8月3日). 2022年1月15日閲覧。
- ^ “ID2D1DCRenderTarget (d2d1.h) - Win32 apps” (英語). learn.microsoft.com. Microsoft Learn. マイクロソフト (2021年8月3日). 2022年1月15日閲覧。
- ^ About Direct2D - Win32 apps | Microsoft Learn
- ^ DPI and device-independent pixels - Win32 apps | Microsoft Learn
- ^ Retained Mode Versus Immediate Mode - Win32 apps | Microsoft Learn
- ^ §Windows 8.1 : What's new in DirectWrite - Win32 apps | Microsoft Learn
- ^ §What's new for Windows 10 Anniversary Update : What's new in Direct2D - Win32 apps | Microsoft Learn
- ^ §Windows 10 Anniversary Update : What's new in DirectWrite - Win32 apps | Microsoft Learn
- ^ §What’s new for Windows 10 Creators Update : What's new in Direct2D - Win32 apps | Microsoft Learn
- ^ ASCII.jp:パブリックベータが開始された「Office 2010」 (1/2)|あなたの知らないWindows
- ^ 2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜