Поделиться через


Метод ID3D12Device10::CreateCommittedResource3 (d3d12.h)

Создает выделенный ресурс с начальным макетом, а не начальным состоянием.

Требуется пакет SDK для DirectX 12 Agility 1.7 или более поздней версии.

Синтаксис

HRESULT CreateCommittedResource3(
  const D3D12_HEAP_PROPERTIES    *pHeapProperties,
  D3D12_HEAP_FLAGS               HeapFlags,
  const D3D12_RESOURCE_DESC1     *pDesc,
  D3D12_BARRIER_LAYOUT           InitialLayout,
  const D3D12_CLEAR_VALUE        *pOptimizedClearValue,
  ID3D12ProtectedResourceSession *pProtectedSession,
  UINT32                         NumCastableFormats,
  const DXGI_FORMAT              *pCastableFormats,
  REFIID                         riidResource,
  void                           **ppvResource
);

Параметры

pHeapProperties

Тип: _In_ const D3D12_HEAP_PROPERTIES*

Указатель на структуру D3D12_HEAP_PROPERTIES, которая предоставляет свойства кучи ресурса.

HeapFlags

Тип: D3D12_HEAP_FLAGS

Параметры кучи, как побитовое сочетание констант перечисления D3D12_HEAP_FLAGS.

pDesc

Тип: const D3D12_RESOURCE_DESC1*

Указатель на структуру D3D12_RESOURCE_DESC1, описывающую ресурс, включая регион MIP.

InitialLayout

Начальный макет ресурса текстуры; D3D12_BARRIER_LAYOUT::D 3D12_BARRIER_LAYOUT_UNDEFINED для буферов.

pOptimizedClearValue

Тип: константа D3D12_CLEAR_VALUE*

Указывает структуру D3D12_CLEAR_VALUE, описывающую значение по умолчанию для четкого цвета.

pOptimizedClearValue указывает значение, для которого наиболее оптимальные операции очистки. Когда созданный ресурс является текстурой с флагами D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET или D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL, следует выбрать значение, с помощью которого обычно вызывается операция очистки. Вы можете вызвать операцию очистки с другими значениями, но эти операции не будут столь эффективными, как при совпадении значения, переданного в создание ресурса.

При использовании D3D12_RESOURCE_DIMENSION_BUFFERнеобходимо задать для nullptrзначение pOptimizedClearValue.

pProtectedSession

Тип: ID3D12ProtectedResourceSession*

Необязательный указатель на объект, представляющий сеанс для защиты содержимого. Если этот сеанс указан, этот сеанс указывает, что ресурс должен быть защищен. Вы можете получить ID3D12ProtectedResourceSession, вызвав ID3D12Device4::CreateProtectedResourceSession.

NumCastableFormats

Количество элементов в pCastableFormats.

pCastableFormats

Непрерывный массив структур DXGI_FORMAT, к которым можно привести этот ресурс.

riidResource

Тип: REFIID

Ссылка на глобальный уникальный идентификатор (GUID) интерфейса ресурса, возвращаемого в ppvResource.

Хотя riidResource чаще всего является GUIDID3D12Resource, это может быть GUID любого интерфейса. Если объект ресурса не поддерживает интерфейс для этого GUID, создание завершается сбоем с E_NOINTERFACE.

ppvResource

Тип: void**

Необязательный указатель на блок памяти, который получает запрошенный указатель интерфейса на созданный объект ресурса.

ppvResource можно nullptr, чтобы включить тестирование возможностей. Если ppvResource nullptr, объект не создается и S_FALSE возвращается, когда pDesc.

Возвращаемое значение

Тип: HRESULT

Если функция успешно выполнена, она возвращает S_OK. В противном случае возвращается кодошибки HRESULT.

Возвращаемое значение Описание
E_OUTOFMEMORY Для создания ресурса недостаточно памяти.

См. коды возврата Direct3D 12 для других возможных возвращаемых значений.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка d3d12.h
библиотеки D3d12.lib
DLL D3d12.dll

См. также

ID3D12Device10