ID3D12Device8::CreatePlacedResource1 方法 (d3d12.h)
建立放置於特定堆積中的資源。 放置的資源是可用的最輕量資源物件,而且是建立和終結最快的資源物件。
您的應用程式可以重疊堆積區域上的多個 Direct3D 放置和保留資源,以重複使用視訊記憶體。 簡單的記憶體重複使用模型(如 備註中所述)存在,以釐清任何指定時間的重疊資源是否有效。 為了最大化圖形工具支援,不支持簡單的模型數據繼承;不支援更精細的磚和子資源失效。 只會發生完整重疊的資源失效。
語法
HRESULT CreatePlacedResource1(
ID3D12Heap *pHeap,
UINT64 HeapOffset,
const D3D12_RESOURCE_DESC1 *pDesc,
D3D12_RESOURCE_STATES InitialState,
const D3D12_CLEAR_VALUE *pOptimizedClearValue,
REFIID riid,
void **ppvResource
);
參數
pHeap
類型:[in] ID3D12Heap*
ID3D12Heap 介面的指標,表示資源所在的堆積。
HeapOffset
類型:UINT64
資源的位移,以位元組為單位。 HeapOffset 必須是資源的倍數,而且 HeapOffset 加上資源大小必須小於或等於堆積大小。 GetResourceAllocationInfo 必須用來瞭解紋理資源的大小。
pDesc
類型:[in] const D3D12_RESOURCE_DESC1*
描述資源之 D3D12_RESOURCE_DESC1 結構的指標,包括 mip 區域。
InitialState
資源的初始狀態,作為 D3D12_RESOURCE_STATES 列舉常數的位 OR'd 組合。
當資源與 D3D12_HEAP_TYPE_UPLOAD 堆積一起建立時,InitialState 必須 D3D12_RESOURCE_STATE_GENERIC_READ。 當資源與 D3D12_HEAP_TYPE_READBACK 堆積一起建立時,InitialState 必須 D3D12_RESOURCE_STATE_COPY_DEST。
pOptimizedClearValue
類型:[in,選擇性] const D3D12_CLEAR_VALUE*
指定描述清楚色彩之預設值的 D3D12_CLEAR_VALUE。
pOptimizedClearValue 指定最理想的清除作業值。 當建立的資源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 或 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 旗標的紋理時,您的應用程式應該選擇最常使用 呼叫清除作業的值。
清除作業可以與其他值一起呼叫,但當值符合傳遞至資源建立的值時,這些作業不會那麼有效率。
pOptimizedClearValue 搭配 D3D12_RESOURCE_DIMENSION_BUFFER使用時必須是 NULL。
riid
類型:REFIID
資源介面的全域唯一標識碼 (GUID)。 這是輸入參數。
REFIID或 GUID,可以使用 __uuidof
宏來取得資源的介面。 例如,__uuidof(ID3D12Resource)
取得資源的介面 GUID。 雖然 riid 通常是,ID3D12Resource的 GUID,但它可能是任何介面的 GUID。 如果資源物件不支援此 GUID的介面,則建立會失敗並產生 E_NOINTERFACE。
ppvResource
類型:[out,選擇性] void**
接收資源指標的記憶體區塊指標。
ppvResource 可以是 NULL,以啟用功能測試。 當 ppvResource
傳回值
類型:HRESULT
如果記憶體不足而無法建立資源,這個方法會傳回 E_OUTOFMEMORY。 如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼。
言論
請參閱 ID3D12Device::CreatePlacedResource。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
支援的最低伺服器 | Windows 10 組建 20348 |
標頭 | d3d12.h |
連結庫 | d3d12.lib |
DLL | d3d12.dll |