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

特定のヒープに配置されるリソースを作成します。 配置されたリソースは、使用可能な最も軽量なリソース オブジェクトであり、作成と破棄が最も高速です。

アプリケーションでは、ヒープ領域に配置された複数の Direct3D リソースと予約済みリソースを重ねて、ビデオ メモリを再利用できます。 単純なメモリ再利用モデル (解説で説明) は、どの重複するリソースが任意の時点で有効であるかを明確にするために存在します。 グラフィックス ツールのサポートを最大化するために、単純なモデルのデータ継承はサポートされていません。詳細なタイルとサブリソースの無効化はサポートされていません。 完全に重複するリソースの無効化のみが発生します。

構文

HRESULT CreatePlacedResource1(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_RESOURCE_STATES      InitialState,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  REFIID                     riid,
  void                       **ppvResource
);

パラメーター

pHeap

型: [in] ID3D12Heap*

リソースが配置されるヒープを表す ID3D12Heap インターフェイスへのポインター。

HeapOffset

型: UINT64

リソースへのオフセット (バイト単位)。 HeapOffset はリソースの配置の倍数である必要があり、HeapOffset とリソース サイズ はヒープ サイズ以下である必要があります。 GetResourceAllocationInfo を使用して、テクスチャ リソースのサイズを理解する必要があります。

pDesc

型: [in] const D3D12_RESOURCE_DESC1*

ミップ領域を含む、リソースを記述する D3D12_RESOURCE_DESC1 構造体へのポインター。

InitialState

型: D3D12_RESOURCE_STATES

D3D12_RESOURCE_STATES 列挙定数のビットごとの OR の組み合わせとしてのリソースの初期状態。

リソースを D3D12_HEAP_TYPE_UPLOAD ヒープと共に作成する場合は、InitialState D3D12_RESOURCE_STATE_GENERIC_READする必要があります。 リソースを D3D12_HEAP_TYPE_READBACK ヒープと共に作成する場合は、InitialState D3D12_RESOURCE_STATE_COPY_DESTする必要があります。

pOptimizedClearValue

型: [in, optional] 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 である必要があります。

riid

型: REFIID

リソース インターフェイスのグローバル一意識別子 (GUID)。 これは入力パラメーターです。

リソースへのインターフェイスの REFIID(GUID) は、__uuidof マクロを使用して取得できます。 たとえば、__uuidof(ID3D12Resource) は、インターフェイスの GUID をリソースに取得します。 riid は、最も一般的には、ID3D12Resourceの GUID ですが、任意のインターフェイスの任意の GUID にすることができます。 リソース オブジェクトがこの GUIDのインターフェイスをサポートしていない場合は、E_NOINTERFACEで作成が失敗します。

ppvResource

型: [out, optional] void**

リソースへのポインターを受け取るメモリ ブロックへのポインター。 ppvResource は NULL にして、機能テストを有効にすることができます。 ppvResource NULL の場合、pResourceDesc とその他のパラメーター 有効な場合、オブジェクトは作成されません。S_FALSEが返されます。

戻り値

型: HRESULT

このメソッドは、リソースを作成するのに十分なメモリがない場合に E_OUTOFMEMORY を返します。 その他 戻り値については、Direct3D 12 リターン コード を参照してください。

備考

ID3D12Device::CreatePlacedResourceを参照してください。

必要条件

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

関連項目