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


Метод 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, приложение должно выбрать значение, с которым обычно вызывается операция очистки.

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

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 Return Code.

Замечания

См. примечания ID3D12Device::CreatePlacedResource.

Требования

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

См. также

CreateCommittedResource

CreateReservedResource

ID3D12Device10

общих куч