Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Центральный класс вспомогательных средств создания объектов состояния D3DX12, которые являются вспомогательными классами для создания объектов состояния из произвольного набора подобъектов.
Синтаксис
class CD3DX12_STATE_OBJECT_DESC
{
CD3DX12_STATE_OBJECT_DESC() noexcept;
CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE) noexcept;
void SetStateObjectType(D3D12_STATE_OBJECT_TYPE) noexcept;
operator const D3D12_STATE_OBJECT_DESC& ();
operator const D3D12_STATE_OBJECT_DESC* ();
template<typename T> T* CreateSubobject();
};
Члены
CD3DX12_STATE_OBJECT_DESC
Конструктор по умолчанию. Создает новый инициализированный по умолчанию экземпляр CD3DX12_STATE_OBJECT_DESC.
CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)
Конструктор, создающий новый экземпляр CD3DX12_STATE_OBJECT_DESC инициализирован с типом вложенного задания, соответствующим значению D3D12_STATE_OBJECT_TYPE переданного ему.
SetStateObjectType(D3D12_STATE_OBJECT_TYPE)
Метод, задающий тип подчиненного задания значением переданного D3D12_STATE_OBJECT_TYPE .
operator const D3D12_STATE_OBJECT_DESC&
Оператор преобразования, возвращающий ссылку на константу D3D12_STATE_OBJECT_DESC объект, описывающий объект состояния.
operator const D3D12_STATE_OBJECT_DESC*
Оператор преобразования, возвращающий указатель на константу D3D12_STATE_OBJECT_DESC объект, описывающий объект состояния.
CreateSubobject
Шаблон функции, создающий вспомогательный подобъект, время существования которого принадлежит этому классу.
Параметр шаблона T указывает вспомогательный тип подзадачи, например CD3DX12_HIT_GROUP_SUBOBJECT.
Комментарии
Чтобы использовать вспомогательные функции создания объектов состояния D3DX12, начните с создания экземпляра объекта CD3DX12_STATE_OBJECT_DESC и вызовите его функцию CreateSubobject для создания вложенных объектов. Каждый вспомогательный объект имеет методы, характерные для этого подобъекта, для настройки его содержимого.
CD3DX12_STATE_OBJECT_DESC Collection1(D3D12_STATE_OBJECT_TYPE_COLLECTION);
auto Lib0 = Collection1.CreateSubobject<CD3DX12_DXIL_LIBRARY_SUBOBJECT>();
Lib0->SetDXILLibrary(&pMyAppDxilLibs[0]);
Lib0->DefineExport(L"rayGenShader0");
// In practice, these export listings might be data/engine-driven.
...
Кроме того, можно явно создать экземпляр вспомогательных объектов, например с помощью локальных переменных, передавая объект состояния desc (который должен указывать на него) во вспомогательный конструктор (или вызовите mySubobjectHelper.AddToStateObject(Collection1)
).
В этом альтернативном сценарии необходимо поддерживать подобъект в активном состоянии, пока объект состояния, с которым он связан, находится в активном состоянии, в противном случае ссылки на его указатели будут устаревшими.
CD3DX12_STATE_OBJECT_DESC RaytracingState2(D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE);
CD3DX12_DXIL_LIBRARY_SUBOBJECT LibA(RaytracingState2);
LibA.SetDXILLibrary(&pMyAppDxilLibs[4]);
// Not manually specifying exports; meaning that all exports in the libraries are exported.
...
Требования
Требование | Значение |
---|---|
Заголовок | D3dx12.h |