IDirectDraw インターフェイス

IDirectDraw インターフェイスは、DirectShow マルチメディア ストリーミング API で使われる DirectDraw オブジェクト上で公開されるが、便宜上 DirectShow のドキュメントに含まれている。

DirectDraw オブジェクトはディスプレイ ハードウェアを表す。このオブジェクトがインスタンス化するディスプレイ デバイスがハードウェア アクセラレーション機能を持っている場合、このオブジェクトはハードウェアによってアクセラレートされる。DirectDraw オブジェクトによって作成できるオブジェクトは、DirectDrawSurface オブジェクト、DirectDrawPalette オブジェクト、DirectDrawClipper オブジェクトの 3 つである。

DirectDraw オブジェクトは、作成するすべてのオブジェクトを管理する。このオブジェクトは、プライマリ サーフェイスが 8 bpp モードである場合のデフォルトのパレット、デフォルトのカラー キー値、ハードウェアのディスプレイ モードを制御する。また、割り当て済みのリソースとこれから割り当てるリソースも識別される。

ディスプレイ モードの変更は、DirectDraw の重要な機能の 1 つである。ディスプレイ モードの解像度は、他のアプリケーションが排他的に DirectDraw にアクセスしていない限り、いつでも変更できる。ディスプレイ モードのピクセル深度は、変更を要求しているアプリケーションが DirectDraw オブジェクトに排他的にアクセスしている場合にのみ変更できる。ディスプレイ モードを変更すると、すべての DirectDrawSurface オブジェクトはサーフェイス メモリを失い、機能しなくなる。これらのサーフェイスのメモリは、Restore メソッドを使って再割り当てする必要がある。

IUnknown から継承したメソッドに加えて、IDirectDraw インターフェイスは次のメソッドを公開する。

メソッド 説明
Compact まだ実装されていない。
CreateClipper DirectDrawClipper オブジェクトを作成する。
CreatePalette この DirectDraw オブジェクトに対する DirectDrawPalette オブジェクトを作成する。
CreateSurface この DirectDraw オブジェクトに対する DirectDrawSurface オブジェクトを作成する。
DuplicateSurface DirectDrawSurface オブジェクトを複製する。
EnumDisplayModes ハードウェアが DirectDraw オブジェクトを介して公開するディスプレイ モードのうち、提供されたサーフェイス記述と互換性があるすべてのディスプレイ モードを列挙する。
EnumSurfaces 指定された検索基準に合う、既存のまたは可能なサーフェイスをすべて列挙する。
FlipToGDISurface GDI が書き込むサーフェイスをプライマリ サーフェイスにする。
GetCaps デバイス ドライバ (ハードウェア) やハードウェア エミュレーション レイヤ (HEL) の未処理 (未解決ではない) 能力を格納する。
GetDisplayMode 現在のディスプレイ モードを返す。
GetFourCCCodes DirectDraw オブジェクトによってサポートされる FourCC コードを取得する。
GetGDISurface GDI がプライマリ サーフェイスとして処理するサーフェイス メモリを現在表している DirectDrawSurface オブジェクトを返す。
GetMonitorFrequency DirectDraw オブジェクトが動作するモニタの周波数を返す。
GetScanLine モニタ上で現在描画されている走査線を返す。
GetVerticalBlankStatus 垂直同期の状態を返す。
Initialize DirectDraw オブジェクトを初期化する。
RestoreDisplayMode プライマリ サーフェイスのディスプレイ デバイス ハードウェアのモードを、SetDisplayMode メソッドが変更する前の状態にリセットする。
SetCooperativeLevel アプリケーションの最上位動作を決定する。
SetDisplayMode ディスプレイ デバイス ハードウェアのモードを設定する。モードを変更する前に、SetCooperativeLevel を使って排他レベルのアクセスを設定する必要がある。
WaitForVerticalBlank 呼び出し元が垂直同期間隔と同期できるようにする。