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
| Name | Description |
IShaderRecord | Describes a record within a shader binding table. |
Types
Type Aliases
Member Functions
| Name | Description |
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
| Name | Description |
operator= | Assignment operators |
See Also
https://github.com/crud89/LiteFX/wiki/Raytracing#local-resource-bindings