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


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

Создает ресурс, помещенный в определенную кучу. Размещенные ресурсы — это самые легкие доступные объекты ресурсов, которые быстрее всего создаются и уничтожаются.

Приложение может повторно использовать видеопамяти, перекрывая несколько размещенных и зарезервированных ресурсов Direct3D в регионах кучи. Существует простая модель повторного использования памяти (описанная в разделе Примечания) для уточнения того, какой перекрывающийся ресурс действителен в любой момент времени. Для максимальной поддержки графических средств с простой моделью наследование данных не поддерживается; а более детализированная плитка и подресурс не поддерживаются. Происходит только полная недействительность перекрывающихся ресурсов.

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

Синтаксис

HRESULT CreatePlacedResource2(
  ID3D12Heap                 *pHeap,
  UINT64                     HeapOffset,
  const D3D12_RESOURCE_DESC1 *pDesc,
  D3D12_BARRIER_LAYOUT       InitialLayout,
  const D3D12_CLEAR_VALUE    *pOptimizedClearValue,
  UINT32                     NumCastableFormats,
  const DXGI_FORMAT          *pCastableFormats,
  REFIID                     riid,
  void                       **ppvResource
);

Параметры

pHeap

Тип: [in] ID3D12Heap*

Указатель на интерфейс ID3D12Heap , представляющий кучу, в которой размещен ресурс.

HeapOffset

Тип: UINT64

Смещение ресурса в байтах. HeapOffset должен быть кратным выравниванию ресурса, а HeapOffset и размер ресурса должен быть меньше или равен размеру кучи. GetResourceAllocationInfo необходимо использовать для понимания размеров ресурсов текстуры.

pDesc

Тип: [in] const D3D12_RESOURCE_DESC*

Указатель на структуру D3D12_RESOURCE_DESC , описывающую ресурс.

InitialLayout

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

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.

NumCastableFormats

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

pCastableFormats

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

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
Header d3d12.h
Библиотека D3d12.lib
DLL D3d12.dll

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

CreateCommittedResource

CreateReservedResource

ID3D12Device10

Общие кучи