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