語法
參數
pHeapProperties _In_類型:D3D12_HEAP_PROPERTIES* 指向 D3D12_HEAP_PROPERTIES 結構的指標,提供資源堆積的屬性。 HeapFlags
類型:D3D12_HEAP_FLAGS 堆積選項,為 D3D12_HEAP_FLAGS 列舉常數的位元 OR 組合。 pDesc _In_
類型:D3D12_RESOURCE_DESC1* 指向描述資源之 D3D12_RESOURCE_DESC1 結構的指標。 InitialResourceState
類型:D3D12_RESOURCE_STATES 資源的初始狀態,為 D3D12_RESOURCE_STATES 列舉常數的位元 OR 組合。 當您搭配 D3D12_HEAP_TYPE_UPLOAD 堆積建立資源時,必須將 InitialResourceState 設定為 D3D12_RESOURCE_STATE_GENERIC_READ。 當您搭配 D3D12_HEAP_TYPE_READBACK 堆積建立資源時,必須將 InitialResourceState 設定為 D3D12_RESOURCE_STATE_COPY_DEST。 pOptimizedClearValue _In_opt_
類型:D3D12_CLEAR_VALUE* 指定描述清除色彩預設值的 D3D12_CLEAR_VALUE 結構。 pOptimizedClearValue 指定讓清除作業最佳化的值。當建立的資源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 或 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 旗標的紋理時,您應該選擇最常用來呼叫清除作業的值。您可以使用其他值呼叫清除作業,但這些作業的效率不如該值符合建立資源時所傳入的值。 當您使用 D3D12_RESOURCE_DIMENSION_BUFFER 時,必須將 pOptimizedClearValue 設定為 nullptr。 pProtectedSession _In_opt_
類型:ID3D12ProtectedResourceSession* 選擇性的指標,指向代表內容保護工作階段的物件。XBOX 不支援,且必須為 NULL。 riidResource _In_
類型:REFIID 要在 ppvResource 中傳回之資源介面的全域唯一識別碼 (GUID) 參考。 雖然 riidResource 最常是 ID3D12Resource 的 GUID,但它可以是任何介面的 GUID。如果資源物件不支援此 GUID 的介面,則建立會失敗並傳回 E_NOINTERFACE。 ppvResource _COM_Outptr_
類型:void** 選擇性的指標,指向接收所建立資源物件之要求介面指標的記憶體區塊。 ppvResource 可以是 nullptr,以啟用功能測試。當 ppvResource 為 nullptr 時,不會建立任何物件,且當 pDesc 有效時會傳回 S_FALSE。
傳回值
類型:HRESULT 如果函式成功,則傳回 S_OK。否則會傳回 HRESULT 錯誤碼。
如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼。
備註
此方法會同時建立資源和堆積,使堆積大到足以容納整個資源,並將資源對應至該堆積。建立的堆積稱為隱含堆積,因為應用程式無法取得該堆積物件。在釋放資源的最後一個參考之前,您的應用程式必須確保 GPU 不會再讀取或寫入此資源。 隱含堆積會在方法將控制權傳回給您的應用程式之前,設為常駐以供 GPU 存取。另請參閱常駐。 資源的 GPU VA 對應無法變更。 此方法可由多個執行緒同時呼叫。需求
標頭: d3d12_xs.h 程式庫: d3d12_xs.lib支援的平台: XBOX Series 主機
