Skip to content

LiteFX::Rendering::ShaderRecord<TLocalData>

Denotes a shader record containing shader-local data.

Synopsis

Declared in <litefx/rendering_api.hpp>

template<typename TLocalData>
requires (std::alignment_of_v<TLocalData> == SHADER_RECORD_LOCAL_DATA_ALIGNMENT) &&
        std::is_standard_layout_v<TLocalData>
struct ShaderRecord<TLocalData> final
    : IShaderRecord

Description

The TLocalData defines the data that is passed to a shader's local resource bindings upon invocation. Two types of elements are allowed: buffer references and constants. Buffer references can be obtained by calling IBuffer::virtualAddress and are always 8 bytes long. Constants do not strictly need to follow 8 byte alignment rules, but rather can also be smaller, in which case they should be defined as an aligned array, aligned to 8 bytes within the shader-local data.

Base Classes

NameDescription
IShaderRecordDescribes a record within a shader binding table.

Types

NameDescription
MeshGeometryHitGroup Describes a hit group for a triangle mesh geometry.

Type Aliases

Member Functions

NameDescription
ShaderRecord [constructor]Constructors
~ShaderRecord [destructor] [virtual]Destructor
operator= Assignment operators
localData [virtual]Returns a pointer to the shader-local data of the record.
localDataSize [virtual]Returns the size of the shader-local data of the record.
shaderGroup [virtual]Returns the shader group containing the modules for this record.
type Returns the type of the shader record.

Protected Member Functions

NameDescription
operator= Assignment operators

See Also

https://github.com/crud89/LiteFX/wiki/Raytracing#local-resource-bindings