#include <ReflectedStructView.hpp>
|
| ReflectedStructView (uint8_t *base_ptr, const ReflectedStruct &struct_def) |
| Constructs a ReflectedStructView.
|
template<typename T> |
void | set_member (const std::string &member_name, const T &value) |
| Sets the value of a member within the struct. The data is copied to the correct offset in the underlying buffer memory, respecting the shader's memory layout (padding and alignment).
|
void | set_member (const std::string &member_name, const void *data_ptr, size_t data_size_bytes) |
| Overload to set a member from a raw pointer and size. Useful for types like glm::mat4 where glm::value_ptr() provides a raw float*, or for C-style arrays.
|
template<typename T> |
T & | get_member (const std::string &member_name) |
| Gets the member as a modifiable value.
|
uint8_t * | get_member (const std::string &member_name, size_t data_size_bytes) |
template<typename T> |
T & | as_struct () |
◆ ReflectedStructView()
dz::ReflectedStructView::ReflectedStructView |
( |
uint8_t * | base_ptr, |
|
|
const ReflectedStruct & | struct_def ) |
Constructs a ReflectedStructView.
- Parameters
-
base_ptr | A pointer to the start of the struct element's data in the buffer. |
struct_def | The ReflectedStruct definition for this element. |
◆ as_struct()
T & dz::ReflectedStructView::as_struct |
( |
| ) |
|
|
inline |
◆ get_member() [1/2]
T & dz::ReflectedStructView::get_member |
( |
const std::string & | member_name | ) |
|
|
inline |
Gets the member as a modifiable value.
◆ get_member() [2/2]
uint8_t * dz::ReflectedStructView::get_member |
( |
const std::string & | member_name, |
|
|
size_t | data_size_bytes ) |
◆ set_member() [1/2]
void dz::ReflectedStructView::set_member |
( |
const std::string & | member_name, |
|
|
const T & | value ) |
|
inline |
Sets the value of a member within the struct. The data is copied to the correct offset in the underlying buffer memory, respecting the shader's memory layout (padding and alignment).
- Template Parameters
-
T | The type of the value to set (e.g., float, int, glm::vec3, glm::mat4). T must be trivially copyable. |
- Parameters
-
member_name | The name of the struct member (as defined in GLSL, e.g., "model", "color"). |
value | The value to set. |
◆ set_member() [2/2]
void dz::ReflectedStructView::set_member |
( |
const std::string & | member_name, |
|
|
const void * | data_ptr, |
|
|
size_t | data_size_bytes ) |
Overload to set a member from a raw pointer and size. Useful for types like glm::mat4 where glm::value_ptr() provides a raw float*, or for C-style arrays.
- Parameters
-
member_name | The name of the struct member. |
data_ptr | A pointer to the source data. |
data_size_bytes | The size of the source data in bytes. |
The documentation for this class was generated from the following file: