ID3D10Texture1D::Map メソッド (d3d10.h)
サブリソースに含まれるデータへのポインターを取得し、そのサブリソースへの GPU アクセスを拒否します。
構文
HRESULT Map(
[in] UINT Subresource,
[in] D3D10_MAP MapType,
[in] UINT MapFlags,
[out] void **ppData
);
パラメーター
[in] Subresource
型: UINT
サブリソースのインデックス番号。 詳細については、「 D3D10CalcSubresource 」を参照してください。
[in] MapType
種類: D3D10_MAP
リソースに対する CPU の読み取りおよび書き込みアクセス許可を指定します。 使用可能な値については、「 D3D10_MAP」を参照してください。
[in] MapFlags
型: UINT
GPU がビジー状態のときに CPU が実行する必要がある処理を指定するフラグ。 このフラグは省略可能です。
[out] ppData
型: void**
テクスチャ リソース データへのポインター。
戻り値
型: HRESULT
この関数が成功すると、S_OKが返されます。 その他の制限事項、および Map メソッドで 返すことができるエラー値の一覧については、「解説」を参照してください。
解説
テクスチャをマッピングすると、CPU はテクスチャのサブリソース内の基になるデータに直接アクセスできます。 メソッドを成功させるには、マップされるテクスチャを適切なフラグ ( D3D10_CPU_ACCESS_FLAGを参照) で作成し、指定した使用法 ( D3D10_USAGEを参照) をD3D10_USAGE_DYNAMICまたはD3D10_USAGE_STAGINGする必要があります。
Map メソッドの一般的なエラーは、次の戻り値によって示されます。
上記の戻り値の詳細については、「 DXGI_ERROR」を参照してください。
マップ には次の制限があります。
- 1 つのサブリソースを複数回マップすることはできません。つまり、既にマップされているサブリソースで Map を呼び出さないでください。
- パイプラインにバインドされているサブリソースは、レンダリング操作 ( つまり、ID3D10Device::D raw の前) を実行する前にマップ解除する必要があります。
FLOAT* pTexels = (FLOAT*)pData;
for( UINT col = 0; col < width; col++ )
{
pTexels[col*4 + 0]; // Alpha
pTexels[col*4 + 1]; // Blue
pTexels[col*4 + 2]; // Green
pTexels[col*4 + 3]; // Red
}
Direct3D 9 と Direct3D 10 の違い: Direct3D 10 のマップは、Direct3D 9 のリソース ロックに似ています。 |
必要条件
対象プラットフォーム | Windows |
ヘッダー | d3d10.h |
Library | D3D10.lib |