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。
Map 具有下列限制:
- 單一子資源無法對應多次;換句話說,請勿在已經對應的子資源上呼叫 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 中的資源 鎖定。 |
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
標頭 | d3d10.h |
連結庫 | D3D10.lib |