ID3D11Device3::WriteToSubresource 方法 (d3d11_3.h)
將數據複製到使用ID3D11DeviceContext3::Map進行對應的D3D11_USAGE_DEFAULT紋理,同時提供NULL D3D11_MAPPED_SUBRESOURCE 參數。
語法
void WriteToSubresource(
[in] ID3D11Resource *pDstResource,
[in] UINT DstSubresource,
[in, optional] const D3D11_BOX *pDstBox,
[in] const void *pSrcData,
[in] UINT SrcRowPitch,
[in] UINT SrcDepthPitch
);
參數
[in] pDstResource
類型: ID3D11Resource*
目的地資源的指標 (ID3D11Resource) 。
[in] DstSubresource
類型: UINT
以零起始的索引,可識別目的地子資源。 如需詳細資訊,請參閱 D3D11CalcSubresource。
[in, optional] pDstBox
類型: const D3D11_BOX*
方塊的指標,定義要複製資源數據的目標子資源部分。 如果為 NULL,則數據會寫入目的地子資源,且沒有位移。 來源的維度必須符合目的地 (請參閱 D3D11_BOX) 。
空方塊會產生無作業。 如果頂端值大於或等於底部值,或左值大於或等於右值,或前端值大於或等於後端值,則方塊是空的。 當方塊是空的時,這個方法不會執行任何作業。
[in] pSrcData
類型: const void*
記憶體中源數據的指標。
[in] SrcRowPitch
類型: UINT
源數據之一列的大小。
[in] SrcDepthPitch
類型: UINT
源數據之一深度配量的大小。
傳回值
無
備註
提供的資源必須是 D3D11_USAGE_DEFAULT 紋理,此紋理是由先前呼叫ID3D11DeviceContext3::Map 所對應的紋理,同時提供NULL D3D11_MAPPED_SUBRESOURCE 參數。
此 API 適用於高頻率呼叫。 呼叫端可以藉由進行反覆呼叫來更新紋理漸進式區域的呼叫來減少記憶體,同時在每個呼叫期間提供小型緩衝區。 不過,指定足夠的區域是最有效率的,因為這可讓 D3D 在紋理中填滿整個快取線,然後再傳回。
為了有效率,請確定方塊中範圍的界限和對齊方式 ( 64 / [每圖元位元組] ) 圖元。 垂直界限和對齊方式應該是 2 個數據列,但使用每圖元 1 位元組格式時除外,在此情況下建議使用 4 個數據列。 每個呼叫的單一深度配量會有效率地處理。 建議使用,但不需要提供對齊 128 位元組的指標和步幅。
寫入至子Mipmap層級時,建議使用比上述更大的寬度和高度。 這是因為小型Mipmap層級實際上可能會儲存在較大的記憶體區塊內,而不透明的位移量可能會干擾快取行的對齊。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d11_3.h |
程式庫 | D3D11.lib |