跳轉到主要內容
建立放置在特定堆積中的資源。放置的資源是可用的最輕量資源物件,且建立和終結的速度最快。 您的應用程式可以在堆積區域上重疊多個 Direct3D 放置的資源和保留的資源,以重複使用視訊記憶體。簡單記憶體重複使用模型 (如備註中所述) 的存在,是為了釐清在任何指定時間哪一個重疊的資源有效。為了將圖形工具支援最大化,簡單模型不支援資料繼承,也不支援更精細的圖格和子資源失效。只會發生完整重疊資源的失效。 需要 DirectX 12 Agility SDK 1.7 或更新版本。

語法

參數

pHeap
類型:ID3D12Heap *
ID3D12Heap 介面的指標,代表放置資源的堆積。 HeapOffset
類型:UINT64
資源的位移 (以位元組為單位)。HeapOffset 必須是資源對齊的倍數,且 HeapOffset 加上資源大小必須小於或等於堆積大小。必須使用 GetResourceAllocationInfo 來了解紋理資源的大小。 pDesc
類型:const D3D12_RESOURCE_DESC1 *
D3D12_RESOURCE_DESC 結構的指標,描述資源。 InitialLayout
類型:D3D12_BARRIER_LAYOUT
紋理資源的初始配置;緩衝區則為 D3D12_BARRIER_LAYOUT::D3D12_BARRIER_LAYOUT_UNDEFINED。 pOptimizedClearValue
類型:const D3D12_CLEAR_VALUE *
指定 D3D12_CLEAR_VALUE,描述清除色彩的預設值。 pOptimizedClearValue 會指定清除作業最佳化的值。當建立的資源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 或 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 旗標的紋理時,您的應用程式應該選擇最常用來呼叫清除作業的值。 可以使用其他值呼叫清除作業,但這些作業的效率不如值與建立資源時傳入的值相符時那麼高。 搭配 D3D12_RESOURCE_DIMENSION_BUFFER 使用時,pOptimizedClearValue 必須是 NULL。 NumCastableFormats
類型:UINT32
pCastableFormats 中的元素數目。 pCastableFormats
類型:DXGI_FORMAT *
此資源可轉換成的 DXGI_FORMAT 結構的連續陣列。 riid
類型:const IID &
資源介面的全域唯一識別碼 (GUID)。這是輸入參數。 資源介面的 REFIID (或 GUID) 可以使用 __uuidof 巨集取得。例如,__uuidof(ID3D12Resource) 會取得資源介面的 GUID。雖然 riid 最常是 ID3D12Resource 的 GUID,但它可以是任何介面的任何 GUID。如果資源物件不支援此 GUID 的介面,則建立會失敗並傳回 E_NOINTERFACE。 ppvResource
類型:void **
記憶體區塊的指標,該區塊會接收資源的指標。ppvResource 可以是 NULL,以啟用功能測試。當 ppvResource 為 NULL 時,不會建立任何物件,且當 pResourceDesc 和其他參數有效時會傳回 S_FALSE。

傳回值

類型:HRESULT 如果記憶體不足而無法建立資源,此方法會傳回 E_OUTOFMEMORY。如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼。

備註

請參閱 ID3D12Device::CreatePlacedResource 的備註。

需求

標頭: d3d12_xs.h
程式庫: d3d12_xs.lib
支援的平台:XBOX Series 主機

另請參閱

CreateCommittedResource CreateReservedResource ID3D12Device10 共用堆積
最後修改於 2026年10月6日