Метод 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значение 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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по