次の方法で共有


Direct3D のサーフェス (Direct3D 9)

サーフェスは、ディスプレイ メモリーの線形領域を表し、通常は表示カードのディスプレイ メモリーに常駐します。ただし、システム メモリーに保存することもできます。サーフェスは IDirect3DSurface9 インターフェイスによって管理されます。

  • フロント バッファー。Graphics Adapter によって変換され、モニターに表示されるメモリーの矩形。Direct3D では、アプリメーションがフロント バッファーに直接書き込むことはありません。
  • バック バッファー。アプリケーションが書き込むことができるメモリーの矩形。バック バッファーがモニターに直接表示されることはありません。
  • サーフェスの反転。バック バッファーをフロント バッファーに移動する処理。
  • スワップ チェーン。フロント バッファーにシリアルに表示できる 1 つまたは複数のバック バッファーのコレクション。

サーフェスを取得する

次のメソッドを呼び出すことでサーフェスを作成します。

サーフェス フォーマットによって、サーフェス メモリーの各ピクセルのデータが変換される方法が決まります。Direct3D では、D3DSURFACE_DESC 構造体の D3DFORMAT メンバーを使用してサーフェス フォーマットを記述します。IDirect3DSurface9::GetDesc メソッドを呼び出すことによって、既存のサーフェスのフォーマットを取得できます。

サーフェスが作成されると、次のいずれかのメソッドを呼び出すことでポインターを取得できます。

IDirect3DSurface9 インターフェイスでは、IDirect3DDevice9::UpdateSurface メソッドを介してメモリーに間接的にアクセスできます。このメソッドにより、1 つの IDirect3DSurface9 インターフェイスから別の IDirect3DSurface9 インターフェイスにピクセルの矩形領域をコピーすることができます。また、サーフェス インターフェイスには、ディスプレイ メモリーに直接アクセスするメソッドもあります。たとえば、IDirect3DSurface9::LockRect メソッドを使用すると、ディスプレイ メモリーの矩形領域をロックできます。サーフェス上の矩形領域をロックして作業を実行した後、IDirect3DSurface9::UnlockRect を呼び出すことが重要です。

その他のサーフェスに関するトピック

サーフェスの使用法の詳細は、次のいずれかのトピックで知ることができます。