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


Метод 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

Тип: 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 значение nullptr.

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 .

Требования

Требование Значение
Целевая платформа Windows
Header d3d12.h
Библиотека D3d12.lib
DLL D3d12.dll

См. также раздел

ID3D12Device10