Platform SDK: DirectX

DirectDraw アーキテクチャの概要

マルチメディア ソフトウェアは、ハイパフォーマンスなグラフィックスを要求する。Microsoft は、DirectDraw によりデバイスの独立性を保ちながら、GDI を使う場合よりもはるかにハイレベルの効率とスピードを持つグラフィックス重視の Windows アプリケーションを開発できるようにする。DirectDraw では、以下にあげるような主要タスクを実行するためのツールを提供する。

さらに、DirectDraw により実行時にディスプレイ ハードウェアの能力を照会することができるようになり、ホスト コンピュータのハードウェア能力における最適なパフォーマンスを提供する。

他の DirectX コンポーネントと同様、DirectDraw は可能なかぎりハードウェアを最大限利用しようとする。また、ハードウェア サポートを利用できない場合、大部分の機能のソフトウェア エミュレーションを提供する。デバイスの独立性は、ハードウェア アブストラクション レイヤ (HAL) を利用することにより可能となる。HAL の詳細については、「ハードウェア アブストラクション レイヤ (HAL)」を参照すること。

[C++]

DirectDraw コンポーネントは、COM ベースのインターフェイスからサービスを提供する。最新のインターフェイスは、IDirectDraw7IDirectDrawSurface7IDirectDrawPaletteIDirectDrawClipper、および IDirectDrawVideoPort である。これらのインターフェイスの他に、DirectDraw は従来のバージョンすべてをサポートしている。DirectDraw コンポーネントには、IDirectDraw3IDirectDraw5、または IDirectDraw6 インターフェイスというバージョンはない (IDirectDraw2 から IDirectDraw4、および IDirectDraw4 から IDirectDraw7 にインターフェイス バージョンはスキップした)。

プラットフォーム SDK の DirectX API でアプリケーションを作成するために理解すべき COM 概念については、「コンポーネント オブジェクト モデル」を参照すること。

DirectDraw オブジェクトはディスプレイ アダプタを表し、IDirectDrawIDirectDraw2IDirectDraw4、および IDirectDraw7 インターフェイスからそのメソッドを公開する。大部分の場合、DirectDrawCreateEx 関数を使って最新の DirectDraw オブジェクトを作成するが、CoCreateInstance COM 関数を使って作成することもできる。詳細については、「CoCreateInstance を用いた DirectDraw オブジェクトの作成」を参照すること。

DirectDraw オブジェクトを作成した後、IDirectDraw7::CreateSurface メソッドを呼び出して、そのオブジェクトのサーフェスを作成することができる。サーフェスはディスプレイ ハードウェア上のメモリを表すが、ビデオ メモリとシステム メモリのいずれにも存在することができる。DirectDraw は、他のインターフェイスから、パレット、クリッピング (ウィンドウ アプリケーションでよく利用する)、およびビデオ ポートにおけるサポートを拡張する。

[Visual Basic]

DirectDraw コンポーネントは、DirectX for Visual Basic タイプ ライブラリのクラスからサービスを提供する。最新バージョンでは、このようなクラスとして、DirectDraw7DirectDrawSurface7DirectDrawPaletteDirectDrawClipper がある。

また、タイプ ライブラリによって、ドライバ、モードおよびサーフェスの列挙に使用されるオブジェクトも提供する。このようなオブジェクトとしては、DirectDrawEnumDirectDrawEnumModes、および DirectDrawEnumSurfaces がある。

DirectDraw7 クラスから作成された DirectDraw オブジェクトは、ディスプレイ アダプタを表す。このオブジェクトを作成するには、グローバル DirectX7 オブジェクトの DirectDrawCreate メソッドを使用する。

DirectDraw オブジェクトを作成した後、DirectDraw7.CreateSurface メソッドを呼び出して、そのオブジェクトのサーフェスを作成することができる。サーフェスはディスプレイ ハードウェア上のメモリを表すが、ビデオ メモリとシステム メモリのいずれにも存在することができる。DirectDraw は、他のインターフェイスから、パレットおよびクリッピング (ウィンドウ アプリケーションでよく利用する) におけるサポートを拡張する。