Метод 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 , описывающую ресурс, включая регион MIP.

InitialState

Тип: D3D12_RESOURCE_STATES

Начальное состояние ресурса в виде побитового или сочетания D3D12_RESOURCE_STATES констант перечисления.

При создании ресурса вместе с кучей D3D12_HEAP_TYPE_UPLOADзначение InitialState должно быть D3D12_RESOURCE_STATE_GENERIC_READ. При создании ресурса вместе с кучей D3D12_HEAP_TYPE_READBACKзначение InitialState должно быть D3D12_RESOURCE_STATE_COPY_DEST.

pOptimizedClearValue

Тип: [in, необязательный] const D3D12_CLEAR_VALUE*

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

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

Операции Clear можно вызывать с другими значениями, но эти операции не будут столь эффективными, как если значение совпадает со значением, переданным при создании ресурса.

POptimizedClearValue должно иметь значение NULL при использовании с D3D12_RESOURCE_DIMENSION_BUFFER.

riid

Тип: REFIID

Глобальный уникальный идентификатор (GUID) для интерфейса ресурса. Это входной параметр.

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

ppvResource

Тип: [out, необязательный] void**

Указатель на блок памяти, получающий указатель на ресурс. PpvResource может иметь значение NULL, чтобы включить тестирование возможностей. Если ppvResource имеет значение NULL, объект не будет создан и S_FALSE возвращается, когда pResourceDesc и другие параметры являются допустимыми.

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

Тип: HRESULT

Этот метод возвращает E_OUTOFMEMORY , если недостаточно памяти для создания ресурса. Другие возможные возвращаемые значения см. в разделе Коды возврата Direct3D 12 .

Комментарии

См . раздел ID3D12Device::CreatePlacedResource.

Требования

   
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть d3d12.h
Библиотека d3d12.lib
DLL d3d12.dll

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