Class StateObjectParser

Nested Relationships

Nested Types

Class Documentation

class StateObjectParser

Public Types

using ExistingCollectionCallbackFunc = std::function<ParsedData const*(ID3D12StateObject*)>

Public Functions

StateObjectParser() = default
StateObjectParser(ID3D12Device *device, ExistingCollectionCallbackFunc existingCollectionCallback)
ParsedData Parse(D3D12_STATE_OBJECT_DESC const &desc)
struct Export

Public Functions

operator bool() const
void Merge(Export const &other)

Public Members

ShaderRef shader = {}
HitGroupDesc hitGroup
ID3D12RootSignature *localRootSignature = nullptr
struct HitGroupDesc

Public Functions

inline operator bool() const

Public Members

std::wstring hitGroupExport
D3D12_HIT_GROUP_TYPE type = {D3D12_HIT_GROUP_TYPE_TRIANGLES}
std::wstring anyHitShaderImport
std::wstring closestHitShaderImport
std::wstring intersectionShaderImport
struct ParsedData

Public Functions

void Add(ParsedData const &source, UINT numExports = 0, D3D12_EXPORT_DESC const *exportDescs = nullptr)

Public Members

std::vector<D3D12_SHADER_BYTECODE> libraries
std::vector<CComPtr<ID3D12RootSignature>> shaderExtractedRootSignatures
std::map<std::wstring, Export> exports
ID3D12RootSignature *globalRootSignature = nullptr
struct ShaderRef

Public Functions

operator bool() const
void Merge(ShaderRef const &other)

Public Members

size_t libraryIndex = std::numeric_limits<size_t>::max()
size_t entryPointIndex = std::numeric_limits<size_t>::max()