Метод 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_HEAP_TYPE_UPLOAD необходимо D3D12_RESOURCE_STATE_GENERIC_READInitialStat e. При создании ресурса вместе с кучей D3D12_HEAP_TYPE_READBACK необходимо D3D12_RESOURCE_STATE_COPY_DESTInitialStat e.
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.
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.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Сборка Windows 10 20348 |
минимальный поддерживаемый сервер | Сборка Windows 10 20348 |
заголовка | d3d12.h |
библиотеки |
d3d12.lib |
DLL | d3d12.dll |