Microsoft DirectX 8.0 |
CAggDrawSurface クラスは IDirectDrawSurface インターフェイスを集成する。Microsoft® DirectDraw® のインターフェイス (IDirectDraw および IDirectDrawSurface) は本来集成することができるが、この機能は現在実装されていない。Microsoft® DirectShow® のさまざまなパーツは DirectDraw インターフェイスの集成を必要とする。特に、ビデオ レンダラは、IDirectDraw および IDirectDrawSurface を公開するメディア サンプルを渡す。このクラスおよび CAggDirectDraw クラスは、DirectDraw クラスのメソッドを再公開し、集成できるようにする。
このクラスのコンストラクタ以外の各メンバ関数、SetDirectDrawSurface および NonDelegatingQueryInterface は、パラメータを渡して IDirectDrawSurface インターフェイスの対応するメソッドを呼び出す。
プロテクト データ メンバ
m_pDirectDrawSurface DirectDraw サーフェス。
メンバ関数
CAggDrawSurface CAggDrawSurface オブジェクトを作成する。 SetDirectDrawSurface このクラスによって集成される DirectDraw オブジェクトを設定する。この関数は、IDirectDrawSurface インターフェイスのメソッドを呼び出す前に呼び出さなければならない。
オーバーライド可能なメンバ関数
NonDelegatingQueryInterface インターフェイスを取得し、参照カウントをインクリメントする。
以下の IDirectDrawSurface メソッドが実装される。詳細については、DirectDraw のドキュメントを参照すること。
AddAttachedSurface サーフェスを別のサーフェスにアタッチする。可能なアタッチの例としては、Z バッファ、アルファ チャンネル、およびバック バッファがある。 AddOverlayDirtyRect 次に UpdateOverlayDisplay メンバ関数を呼び出したときに更新しなければならない矩形のリストを構築する。 Blt ビットブロック転送を実行する。 BltBatch 複数の転送元から単一の転送先に一連の CAggDrawSurface::Blt 処理を実行する。 BltFast 転送元または転送先のカラー キーを使用して、転送元コピーのビットブロック転送または透過型ビットブロック転送を実行する。 DeleteAttachedSurface 2 つのサーフェス間のアタッチを解除する。 EnumAttachedSurfaces 与えられたサーフェスにアタッチされるすべてのサーフェスを列挙する。 EnumOverlayZOrders 指定された転送先のオーバーレイを列挙する。オーバーレイは、フロントからバック、またはバックからフロントの順で列挙される。 Flip DDSCAPS_BACKBUFFER サーフェスと関連付けられたサーフェス メモリを、FRONTBUFFER サーフェスと関連付ける。 GetAttachedSurface 指定した能力を持つアタッチされたサーフェスを取得する。 GetBltStatus ビットブロック転送の状態を取得する。 GetCaps サーフェスの能力を取得する。 GetClipper このサーフェスに関連付けられた DirectDrawClipper オブジェクトを取得する。 GetColorKey DirectDrawSurface オブジェクトのカラー キー値を取得する。 GetDC サーフェスの GDI 互換 hDC を作成する。 GetFlipStatus 呼び出したサーフェスでフリッピングが終了している場合は OK を返し、それ以外の場合は DDERR_WASSTILLDRAWING を返す。 GetOverlayPosition 表示状態のアクティブなオーバーレイ サーフェス (DDSCAPS_OVERLAY が設定されている) が与えられると、サーフェスのディスプレイ座標を取得する。 GetPalette このサーフェスに関連付けられた DirectDrawPalette 構造体を取得する。 GetPixelFormat サーフェスのカラーとピクセル フォーマットを取得する。 GetSurfaceDesc 現在の状態におけるサーフェスを記述する DDSURFACEDESC 構造体を取得する。 Initialize DirectDrawSurface オブジェクトを初期化する。 IsLost DirectDrawSurface オブジェクトに関連付けられたサーフェス メモリが解放されたかどうかを判断する。 Lock サーフェス メモリへの有効なポインタを取得する。 ReleaseDC CAggDrawSurface::GetDC によって取得された GDI 互換 hDCを解放する。 Restore "消失" したサーフェスをリストアする。DirectDrawSurface オブジェクトに関連付けられたサーフェス メモリは解放されている。 SetClipper DirectDrawClipper オブジェクトを DirectDrawSurface オブジェクトにアタッチする。 SetColorKey ハードウェアがサーフェスごとのカラー キー値をサポートしている場合に、DirectDrawSurface オブジェクトのカラー キー値を設定する。 SetOverlayPosition オーバーレイ サーフェスのディスプレイ座標を変更する。 SetPalette 指定された DirectDrawPalette オブジェクトを DirectDrawSurface にアタッチする。 Unlock DirectDraw に直接サーフェス処理が完了したことを通知する。 UpdateOverlay オーバーレイ サーフェスのビジュアル属性を再配置したり変更する。これらのサーフェスには、DDSCAPS_OVERLAY ビットを設定する必要がある。 UpdateOverlayDisplay すべてのアクティブ オーバーレイのダーティー矩形のリストにある矩形を再描画する。 UpdateOverlayZOrder オーバーレイの Z オーダーを設定する。Z オーダーは、複数のオーバーレイを同時に表示するときにどのオーバーレイが遮られるかを決定する。
CAggDrawSurface オブジェクトを作成する。
構文
CAggDrawSurface(
TCHAR *pName,
LPUNKNOWN pUnk
);
パラメータ
- pName
- オブジェクトの名前へのポインタ。デバッグのために使用される。
- pUnk
- このオブジェクトの所有者へのポインタ。NULL 以外の場合、IUnknown インターフェイスの呼び出しはこのオブジェクトに委任される。
戻り値
戻り値なし。
注意
このメンバ関数は、CUnknown::CUnknown 基底クラス コンストラクタを呼び出し、m_pDirectDrawSurface メンバ変数を NULL に設定する。
インターフェイスを取得し、参照カウントをインクリメントする。
構文
HRESULT NonDelegatingQueryInterface(
REFIID riid,
void **ppv
);
パラメータ
- riid
- 参照識別子。
- ppv
- インターフェイスへのポインタのアドレス。
戻り値
ppv が無効な場合は、E_POINTER を返す。クエリが成功した場合は NOERROR、失敗した場合は E_NOINTERFACE を返す。
注意
このメンバ関数は、INonDelegatingUnknown::NonDelegatingQueryInterface メソッドを実装する。デフォルトでは、IDirectDrawSurface への参照を渡し、CUnknown::NonDelegatingQueryInterface メンバ関数を呼び出して、基底クラスのインターフェイス参照を取得する。このクラスをオーバーライドして、派生クラスで追加されたインターフェイスを返す。
この集成オブジェクトの所有者によって呼び出され、集成が行われる実際の DirectDraw サーフェスを設定する。
構文
void SetDirectDrawSurface(
LPDIRECTDRAWSURFACE pDirectDrawSurface
);
パラメータ
- pDirectDrawSurface
- 設定される IDirectDraw サーフェスへのポインタ。
戻り値
戻り値なし。
注意
このメンバ関数は、IDirectDrawSurface インターフェイスのメソッドを呼び出す前に呼び出さなければならない。