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