次の方法で共有


ID3D12Device8::CreateCommittedResource2 メソッド (d3d12.h)

リソース全体を格納するのに十分な大きさのヒープであり、リソースがヒープにマップされるように、リソースと暗黙的なヒープ (必要に応じて保護されたセッションの場合) の両方を作成します。 コード例については、ID3D12Device::CreateCommittedResource も参照してください。

構文

HRESULT CreateCommittedResource2(
  const D3D12_HEAP_PROPERTIES    *pHeapProperties,
  D3D12_HEAP_FLAGS               HeapFlags,
  const D3D12_RESOURCE_DESC1     *pDesc,
  D3D12_RESOURCE_STATES          InitialResourceState,
  const D3D12_CLEAR_VALUE        *pOptimizedClearValue,
  ID3D12ProtectedResourceSession *pProtectedSession,
  REFIID                         riidResource,
  void                           **ppvResource
);

パラメーター

pHeapProperties

型: _In_ const D3D12_HEAP_PROPERTIES*

リソースのヒープのプロパティを提供する D3D12_HEAP_PROPERTIES 構造体へのポインター。

HeapFlags

型: D3D12_HEAP_FLAGS

ヒープ オプション。D3D12_HEAP_FLAGS 列挙定数のビットごとの OR の組み合わせ。

pDesc

型: const 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

型: 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 に設定する必要があります。

pProtectedSession

型: ID3D12ProtectedResourceSession*

コンテンツ保護のセッションを表すオブジェクトへの省略可能なポインター。 指定した場合、このセッションはリソースを保護する必要があることを示します。 ID3D12ProtectedResourceSession を取得するには、ID3D12Device4::CreateProtectedResourceSessionを呼び出します。

riidResource

型: REFIID

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

riidResource は、最も一般的に ID3D12Resourceの GUID ですが、任意のインターフェイスの GUID である可能性があります。 リソース オブジェクトがこの GUIDのインターフェイスをサポートしていない場合は、E_NOINTERFACEで作成が失敗します。

ppvResource

型: void**

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

ppvResourcenullptrして、機能テストを有効にすることができます。 ppvResource すると、オブジェクトは作成されません。pDesc が有効な場合 S_FALSE が返されます。

戻り値

型: HRESULT

関数が成功した場合は、S_OKを返します。 それ以外の場合は、HRESULTエラー コードを返します。

戻り値 形容
E_OUTOFMEMORY リソースを作成するためのメモリが不足しています。

その他 可能な戻り値については、Direct3D 12 のリターン コード を参照してください。

備考

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

暗黙的なヒープは、メソッドがアプリケーションに制御を返す前に、GPU アクセス用に常駐します。 レジデンシーも参照してください。

リソース GPU VA マッピングは変更できません。 ID3D12CommandQueue::UpdateTileMappingsボリューム タイル リソースのを参照してください。

このメソッドは、複数のスレッドによって同時に呼び出される場合があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 ビルド 20348
サポートされる最小サーバー Windows 10 ビルド 20348
ヘッダー d3d12.h
ライブラリ d3d12.lib
DLL d3d12.dll

関連項目