ID3D10Buffer::Map メソッド (d3d10.h)

リソースに含まれるデータへのポインターを取得し、リソースへの GPU アクセスを拒否します。

構文

HRESULT Map(
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

パラメーター

[in] MapType

種類: D3D10_MAP

リソースの読み取りと書き込みに対する CPU のアクセス許可を指定するフラグ。 使用可能な値については、「 D3D10_MAP」を参照してください。

[in] MapFlags

型: UINT

GPU がビジー状態のときに CPU が実行する必要がある処理を指定するフラグ ( 「D3D10_MAP_FLAG」を参照)。 このフラグは省略可能です。

[out] ppData

型: void**

バッファー リソース データへのポインター。

戻り値

型: HRESULT

この関数が成功すると、S_OKが返されます。 次の一覧には、 Map が失敗する原因の一部が含まれています。

  • MapFlags で D3D10_MAP_FLAG_DO_NOT_WAITが指定されていて、GPU がまだリソースで終了していない場合、ID3D10Buffer::Map はDXGI_ERROR_WAS_STILL_DRAWINGを返します。
  • 読み取りを許可するフラグが MapType に含まれており、ハードウェア デバイス (つまり、ビデオ カード) が削除された場合、ID3D10Buffer::Map はDXGI_ERROR_DEVICE_REMOVEDを返します。
上記の戻り値の詳細については、「 DXGI_ERROR」を参照してください。

解説

CPU がリソースの内容を書き込むには、動的使用フラグ (D3D10_USAGE_DYNAMIC) を使用してリソースを作成する必要があります。 これらのコンテンツの読み取りと書き込みの両方を行うには、D3D10_USAGE_STAGINGステージング使用フラグを使用してリソースを作成する必要があります。 (これらのフラグの詳細については、「 D3D10_USAGE」を参照してください)。 ID3D10Buffer::Map は、リソース データへのポインターを取得します。 リソースに効率的にアクセスする方法については、「リソース データのコピーとアクセス (Direct3D 10)」を参照してください。

ID3D10Buffer::Unmap を呼び出して、アプリケーションがリソースへのアクセスを完了したことを示します。

ID3D10Buffer::Map には他にもいくつかの制限があります。 次に例を示します。

  • 同じバッファーを複数回マップすることはできません。つまり、既にマップされているバッファーで ID3D10Buffer::Map を呼び出さないでください。
  • パイプラインにバインドされているバッファーは、レンダリング操作 ( ID3D10Device::D raw) を実行する前にマップ解除する必要があります。
Direct3D 9 と Direct3D 10 の違い:

Direct3D 10 の ID3D10Buffer::Map は、Direct3D 9 のリソース ロック に似ています。

必要条件

   
対象プラットフォーム Windows
ヘッダー d3d10.h
Library D3D10.lib

関連項目

ID3D10Buffer インターフェイス