ID3D11DeviceContext1::UpdateSubresource1 方法 (d3d11_1.h)
CPU 會將數據從記憶體複製到在不可對應記憶體中建立的子資源。
語法
void UpdateSubresource1(
[in] ID3D11Resource *pDstResource,
[in] UINT DstSubresource,
[in, optional] const D3D11_BOX *pDstBox,
[in] const void *pSrcData,
[in] UINT SrcRowPitch,
[in] UINT SrcDepthPitch,
[in] UINT CopyFlags
);
參數
[in] pDstResource
類型: ID3D11Resource*
目的地資源的指標。
[in] DstSubresource
類型: UINT
以零起始的索引,可識別目的地子資源。 如需詳細資訊,請參閱 D3D11CalcSubresource 。
[in, optional] pDstBox
類型: const D3D11_BOX*
方塊的指標,定義要複製資源數據的目標子資源部分。 座標是緩衝區的位元組,而紋理的材質則以位元組為單位。 如果 為NULL,UpdateSubresource1 會將數據寫入目的地子資源,且沒有位移。 來源的維度必須符合目的地。
空方塊會產生無作業。 如果頂端值大於或等於底部值,或左值大於或等於右值,或前端值大於或等於後端值,則方塊是空的。 當方塊是空的時, UpdateSubresource1 不會執行更新作業。
[in] pSrcData
類型: const void*
記憶體中源數據的指標。
[in] SrcRowPitch
類型: UINT
源數據之一列的大小。
[in] SrcDepthPitch
類型: UINT
源數據之一深度配量的大小。
[in] CopyFlags
類型: UINT
指定如何執行更新作業 的D3D11_COPY_FLAGS型別值。 如果您針對沒有更新選項指定零, UpdateSubresource1 的行為會像 ID3D11DeviceContext::UpdateSubresource 一樣。 對於無法處理這些旗標的現有顯示驅動程式,運行時間不會使用這些驅動程式。
傳回值
無
備註
如果您呼叫 UpdateSubresource1 來更新常數緩衝區、傳遞任何區域,而且驅動程式尚未實作至 Windows 8,則運行時間會卸除功能層級 9.1、9.2 和 9.3 的呼叫 () 。 如果您以部分區域更新常數緩衝區,其範圍未對齊 16 位元組的數據粒度, (16 個字節成為完整常數) ,運行時間也會卸除呼叫。 當運行時間卸除呼叫時,運行時間不會呼叫對應的設備驅動器介面, (DDI) 。
當您在軟體命令清單中以位移 pDstBox 記錄 UpdateSubresource 的呼叫時,當您播放命令清單時,pDstBox 中的位移不正確地套用至 pSrcData。 new-for-Windows 8 UpdateSubresource1 修正此問題。 在 UpdateSubresource1 的呼叫中, pDstBox 不會影響 pSrcData。
如需各種資源類型及 UpdateSubresource1 如何搭配每個資源類型使用的資訊,請參閱 Direct3D 11 中的資源簡介。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d3d11_1.h |
程式庫 | D3D11.lib |