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 。
- 系結至管線的任何子資源必須先取消對應,才能執行任何轉譯作業 (,在 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 |
程式庫 | D3D10.lib |