> ## 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.

# CreateCommittedResource

> リソースと暗黙のヒープの両方を作成します。ヒープはリソース全体を含めるのに十分な大きさで、リソースはヒープにマップされます。

リソースと暗黙のヒープの両方を作成します。ヒープはリソース全体を含めるのに十分な大きさで、リソースはヒープにマップされます。

## 構文

```cpp theme={null}
HRESULT CreateCommittedResource(
    const D3D12_HEAP_PROPERTIES  pHeapProperties,
    D3D12_HEAP_FLAGS HeapFlags,
    const D3D12_RESOURCE_DESC* pDesc,
    D3D12_RESOURCE_STATES InitialResourceState,
    const D3D12_CLEAR_VALUE  pOptimizedClearValue,
    const IID & riidResource,
    void  ppvResource
)
```

### パラメーター

*pHeapProperties \[in]*<br />型: const D3D12\_HEAP\_PROPERTIES \*

リソースのヒープに対するプロパティを提供する **D3D12\_HEAP\_PROPERTIES** 構造体へのポインター。

*HeapFlags \[in]*<br />型: D3D12\_HEAP\_FLAGS

ヒープ オプション。**D3D12\_HEAP\_FLAGS** 列挙型定数のビットごとの OR 演算による組み合わせ。

*pDesc \[in]*<br />型: **const [D3D12\_RESOURCE\_DESC](/reference/graphics/d3d12/structs/d3d12_resource_desc_public)\***

リソースを記述する **D3D12\_RESOURCE\_DESC** 構造体へのポインター。

*InitialResourceState \[in]*<br />型: [**D3D12\_RESOURCE\_STATES**](/reference/graphics/d3d12_x/enums/d3d12_resource_states)

リソースの初期状態。**D3D12\_RESOURCE\_STATES** 列挙型定数のビットごとの OR 演算による組み合わせ。

[D3D12\_HEAP\_TYPE\_UPLOAD](/reference/graphics/d3d12/enums/d3d12_heap_type_public) ヒープと共にリソースを作成する場合は、*InitialResourceState* を [D3D12\_RESOURCE\_STATE\_GENERIC\_READ](/reference/graphics/d3d12_x/enums/d3d12_resource_states) に設定する必要があります。

[D3D12\_HEAP\_TYPE\_READBACK](/reference/graphics/d3d12/enums/d3d12_heap_type_public) ヒープと共にリソースを作成する場合は、*InitialResourceState* を [D3D12\_RESOURCE\_STATE\_COPY\_DEST](/reference/graphics/d3d12_x/enums/d3d12_resource_states) に設定する必要があります。

*pOptimizedClearValue \[in, optional]*<br />型: const D3D12\_CLEAR\_VALUE \*

クリア カラーのデフォルト値を記述する **D3D12\_CLEAR\_VALUE** 構造体を指定します。

*pOptimizedClearValue* は、クリア操作が最も最適化される値を指定します。作成されるリソースが [D3D12\_RESOURCE\_FLAG\_ALLOW\_RENDER\_TARGET](/reference/graphics/d3d12_x/enums/d3d12_resource_flags) または **D3D12\_RESOURCE\_FLAG\_ALLOW\_DEPTH\_STENCIL** フラグを持つテクスチャの場合、クリア操作が最も頻繁に呼び出される値を選択する必要があります。他の値でクリア操作を呼び出すこともできますが、その操作はリソース作成時に渡された値と一致する場合ほど効率的ではありません。

[D3D12\_RESOURCE\_DIMENSION\_BUFFER](/reference/graphics/d3d12_x/enums/d3d12_resource_dimension) を使用する場合は、*pOptimizedClearValue* を `nullptr` に設定する必要があります。

*riidResource \[in]*<br />型: const IID &

*ppvResource* で返されるリソース インターフェイスのグローバル一意識別子 (**GUID**) への参照。

*riidResource* は最も一般的には [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) の **GUID** ですが、任意のインターフェイスの **GUID** である可能性があります。リソース オブジェクトがこの **GUID** のインターフェイスをサポートしていない場合、作成は **E\_NOINTERFACE** で失敗します。

*ppvResource \[out, optional]*<br />型: void \*\*

作成されたリソース オブジェクトへの要求されたインターフェイス ポインターを受け取るメモリ ブロックへの省略可能なポインター。

*ppvResource* を `nullptr` にして機能テストを有効にできます。*ppvResource* が `nullptr` の場合、オブジェクトは作成されず、*pDesc* が有効な場合は **S\_FALSE** が返されます。

### 戻り値

型: HRESULT

関数が成功した場合、**S\_OK** を返します。それ以外の場合は、[**HRESULT**](https://learn.microsoft.com/en-us/windows/desktop/com/structure-of-com-error-codes) [エラー コード](https://learn.microsoft.com/en-us/windows/win32/com/com-error-codes-10) を返します。

| 戻り値            | 説明                       |
| -------------- | ------------------------ |
| E\_OUTOFMEMORY | リソースを作成するのに十分なメモリがありません。 |

その他の戻り値については、[Direct3D 12 の戻りコード](https://learn.microsoft.com/en-us/windows/win32/direct3d12/d3d12-graphics-reference-returnvalues) を参照してください。

## 解説

このメソッドは、リソースとヒープの両方を作成します。ヒープはリソース全体を含めるのに十分な大きさで、リソースはヒープにマップされます。作成されたヒープは暗黙のヒープと呼ばれます。これは、アプリケーションがヒープ オブジェクトを取得できないためです。リソースの最後の参照を解放する前に、アプリケーションは GPU がこのリソースを読み書きしないことを保証する必要があります。

暗黙のヒープは、メソッドがアプリケーションに制御を戻す前に、GPU アクセスに対して常駐状態にされます。[レジデンシー](https://learn.microsoft.com/en-us/windows/win32/direct3d12/residency) も参照してください。

リソースの GPU VA マッピングを変更することはできません。[ID3D12CommandQueue::UpdateTileMappings](/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public) および [ボリューム タイル リソース](https://learn.microsoft.com/en-us/windows/win32/direct3d12/volume-tiled-resources) を参照してください。

このメソッドは、複数のスレッドから同時に呼び出すことができます。

## 例

[D3D12Bundles](https://learn.microsoft.com/en-us/windows/win32/direct3d12/working-samples) サンプルでは、**ID3D12Device::CreateCommittedResource** を次のように使用しています。

頂点バッファーを作成します。

```cpp theme={null}
auto heapProperties = CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYPE_DEFAULT);
auto resourceDesc = CD3DX12_RESOURCE_DESC::Buffer(SampleAssets::VertexDataSize);
ThrowIfFailed(m_device->CreateCommittedResource(
&heapProperties,
D3D12_HEAP_FLAG_NONE,
&resourceDesc,
D3D12_RESOURCE_STATE_COPY_DEST,
nullptr,
IID_PPV_ARGS(&m_vertexBuffer)));
```

[Direct3D 12 リファレンスのサンプル コード](https://learn.microsoft.com/en-us/windows/win32/direct3d12/notes-on-example-code) を参照してください。

## 要件

**ヘッダー:** d3d12\_xs.h または d3d12\_x.h<br />**ライブラリ:** d3d12\_xs.lib または d3d12\_x.lib<br />**サポートされているプラットフォーム**: XBOX Series 本体および XBOX One ファミリ

## 関連項目

[CreatePlacedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public)

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

[D3D12\_HEAP\_FLAGS](/reference/graphics/d3d12_x/enums/d3d12_heap_flags)

[ID3D12Device](/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [CreateCommittedResource1 (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_createcommittedresource1_public.md)
- [CreateReservedResource](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public.md)
- [CreatePlacedResource](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [CreateReservedResource2 (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createreservedresource2_public.md)
- [CreatePlacedResource2 (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
