class
elementDescribes an element of a data container.
Descriptors and instance data can consist of several smaller building blocks as those types can be viewed as "structs of data". But even something as simple as a matrix4x4 is actually a "struct of 4 times float[4]". This is what element describes, a collection of addressable elements (from the perspective of the GPU) of a struct of data.
static variables
member-functions
Function documentation
psl::string8::view core:: meta:: shader:: instance:: element:: name() const noexcept
Details
This is mostly for debugging purposes, it holds no other significance.
Returns | the name of the element in the SPIR-V module (or the assigned one) |
---|
core::gfx::format core:: meta:: shader:: instance:: element:: format() const noexcept
Returns | the format that maps 1:1 to this element. |
---|
uint32_t core:: meta:: shader:: instance:: element:: offset() const noexcept
Returns | the offset in bytes where this element lives in respect to the parent. |
---|
const std::vector<uint8_t>& core:: meta:: shader:: instance:: element:: default_value() const noexcept
Returns | the default value (if any, otherwise defaulted) to fill in this element's data with if no override is given. |
---|
void core:: meta:: shader:: instance:: element:: name(psl::string8::view value)
Brief
sets the name of the element (mostly meant for user information)
Parameters | |
---|---|
value in | the new name to set. |
void core:: meta:: shader:: instance:: element:: format(core::gfx::format value)
Brief
format to bind this element to.
Parameters | |
---|---|
value in | the format that bests describes this element. |
void core:: meta:: shader:: instance:: element:: offset(uint32_t value)
Brief
the offset from the parent in bytes.
Parameters | |
---|---|
value in | the offset from the parent structure start this element starts at. |
void core:: meta:: shader:: instance:: element:: default_value(const std::vector<uint8_t>& value)
Details
default values are a handy way of emplacing data "by default" into a descriptor/instance. When binding fails, or when there is no "real" backing resource to bind to (could be in the case of setting the override color of a particle system), then the shader will be filled in with this value instead. Depending if it is a instance, or descriptor element, you can even set this value per-material.
Parameters | |
---|---|
value in | the default value if no override is given. |
template<typename S>
void core:: meta:: shader:: instance:: element:: serialize(S& s) private
Brief
method that will be invoked by the serialization system.
Template parameters | |
---|---|
S | the type of the serializer/deserializer |
Parameters | |
s in | instance of a serializer that you can read from, or write to. |