Platform SDK: DirectX |
クリップ リストは、ピクセル座標ごとの 1 つ以上の RECT 構造体から成る。DirectDraw は、あらゆるサーフェスにアタッチされる DirectDrawClipper オブジェクトを使ってクリップ リストを管理する。
IDirectDrawSurface7::Blt メソッドは、クリップ リストの矩形だけにデータをコピーする。たとえば、サーフェスの右上の部分がクリップ リストの矩形により排除され、アプリケーションがクリップされたサーフェスの全領域にブリットした場合、DirectDraw は 2 つのブリットを効果的に実行する。次に示す図のように、1 つはサーフェスの左上角、もう 1 つはサーフェスの下半分である。
クリップ リストは、ピクセル座標ごとの 1 つ以上の RECT 型から成る。DirectDraw は、あらゆるサーフェスにアタッチされる DirectDrawClipper オブジェクトを使ってクリップ リストを管理する。
DirectDrawSurface7.Blt メソッドは、クリップ リストの矩形だけにデータをコピーする。たとえば、サーフェスの右上の部分がクリップ リストの矩形により排除され、アプリケーションがクリップされたサーフェスの全領域にブリットした場合、DirectDraw は 2 つのブリットを効果的に実行する。次に示す図のように、1 つはサーフェスの左上角、もう 1 つはサーフェスの下半分である。
サーフェスのクリップ リストは手動で管理できる。または、プライマリ サーフェス に対しては DirectDraw が自動的にクリップ リストを管理する。
クリップ リストを各自で管理するには、RGNDATA 構造体のフォームに矩形のリストを作成し、これを IDirectDrawClipper::SetClipList メソッドに渡す。
プライマリ サーフェスに対するクリップ リストを DirectDraw で管理するには、ターゲット ウィンドウのハンドルを指定する IDirectDrawClipper::SetHWnd メソッドを呼び出し、ウィンドウ (フルスクリーン ウィンドウでも) にクリッパーをアタッチする。これより、クリッピング領域をウィンドウのクライアント領域に設定でき、ウィンドウのサイズ変更やカバーの有無によりクリップ リストが自動的に更新されたことを確認できる。
クリップ リストを各自で管理するには、RECT 型の配列のフォームに矩形のリストを作成し、DirectDrawClipper.SetClipList メソッドに渡す。
プライマリ サーフェスに対するクリップ リストを DirectDraw で管理するには、ターゲット ウィンドウのハンドルを指定する DirectDrawClipper.SetHWnd メソッドを呼び出し、ウィンドウ (フルスクリーン ウィンドウでも) にクリッパーをアタッチする。これより、クリッピング領域をウィンドウのクライアント領域に設定でき、ウィンドウのサイズ変更やカバーの有無によりクリップ リストが自動的に更新されたことを確認できる。
ウィンドウ ハンドルを用いてクリッパーを設定する場合、追加の矩形を設定することはできない。
オーバーレイ ハードウェアがクリッピングをサポートし、かつ転送先カラー キーイング がアクティブでない場合にだけ、オーバーレイ サーフェスに対するクリッピングがサポートされる。