> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CreatePlacedResource2 (XBOX Series 主機)

> ID3D12Device10::CreatePlacedResource2 會在 XBOX Series 主機 Direct3D 12 上於堆積中建立放置的資源，並提供比原始 API 更多的延伸參數。

建立放置在特定堆積中的資源。放置的資源是可用的最輕量資源物件，且建立和終結的速度最快。

您的應用程式可以在堆積區域上重疊多個 Direct3D 放置的資源和保留的資源，以重複使用視訊記憶體。簡單記憶體重複使用模型 (如[備註](#remarks)中所述) 的存在，是為了釐清在任何指定時間哪一個重疊的資源有效。為了將圖形工具支援最大化，簡單模型不支援資料繼承，也不支援更精細的圖格和子資源失效。只會發生完整重疊資源的失效。

需要 DirectX 12 Agility SDK 1.7 或更新版本。

## 語法

```cpp theme={null}
HRESULT CreatePlacedResource2(
    ID3D12Heap  pHeap,
    UINT64 HeapOffset,
    const D3D12_RESOURCE_DESC1  pDesc,
    D3D12_BARRIER_LAYOUT InitialLayout,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    UINT32 NumCastableFormats,
    DXGI_FORMAT  pCastableFormats,
    const IID & riid,
    void  ppvResource
)
```

### 參數

*pHeap*\
類型：ID3D12Heap \*

**ID3D12Heap** 介面的指標，代表放置資源的堆積。

*HeapOffset*\
類型：UINT64

資源的位移 (以位元組為單位)。*HeapOffset* 必須是資源對齊的倍數，且 *HeapOffset* 加上資源大小必須小於或等於堆積大小。必須使用 [**GetResourceAllocationInfo**](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourceallocationinfo_public) 來了解紋理資源的大小。

*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](https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format) 結構的連續陣列。

*riid*\
類型：const IID &

資源介面的全域唯一識別碼 (**GUID**)。這是輸入參數。

資源介面的 **REFIID** (或 **GUID**) 可以使用 `__uuidof` 巨集取得。例如，`__uuidof(ID3D12Resource)` 會取得資源介面的 **GUID**。雖然 **riid** 最常是 [**ID3D12Resource**](/zh-TW/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) 的 GUID，但它可以是任何介面的任何 **GUID**。如果資源物件不支援此 **GUID** 的介面，則建立會失敗並傳回 **E\_NOINTERFACE**。

*ppvResource*\
類型：void \*\*

記憶體區塊的指標，該區塊會接收資源的指標。*ppvResource* 可以是 NULL，以啟用功能測試。當 *ppvResource* 為 NULL 時，不會建立任何物件，且當 *pResourceDesc* 和其他參數有效時會傳回 S\_FALSE。

### 傳回值

類型：HRESULT

如果記憶體不足而無法建立資源，此方法會傳回 **E\_OUTOFMEMORY**。如需其他可能的傳回值，請參閱 [Direct3D 12 傳回碼](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues)。

## 備註

請參閱 [ID3D12Device::CreatePlacedResource](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public) 的**備註**。

## 需求

**標頭：** d3d12\_xs.h\
**程式庫：** d3d12\_xs.lib\
**支援的平台**：XBOX Series 主機

## 另請參閱

[CreateCommittedResource](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcommittedresource_public)

[CreateReservedResource](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public)

[ID3D12Device10](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device10/id3d12device10_public)

[共用堆積](https://learn.microsoft.com/en-us/windows/win32/direct3d12/shared-heaps)


## Related topics

- [CreateReservedResource2 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreateReservedResource1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createreservedresource1_public.md)
- [CreateHeap1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createheap1_public.md)
- [CreateMetaCommand (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_createmetacommand_public.md)
- [CreateCommandList1 (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommandlist1_public.md)
