Rendering Engine 0.2.9
Modular Graphics Rendering Engine | v0.2.9
rendering_engine::PackedMaterialData Struct Reference

Contains the raw buffer data and layout metadata of packed material parameters. More...

#include <material_types.hpp>

Public Member Functions

void SetMaterialFloat (const std::string &name, float value)
 
void SetMaterialVec2 (const std::string &name, const glm::vec2 &value)
 
void SetMaterialVec3 (const std::string &name, const glm::vec3 &value)
 
void SetMaterialVec4 (const std::string &name, const glm::vec4 &value)
 

Public Attributes

std::vector< uint8_t > buffer
 
std::vector< MaterialParameterLayoutEntrylayout
 

Detailed Description

Contains the raw buffer data and layout metadata of packed material parameters.

Definition at line 79 of file material_types.hpp.

Member Function Documentation

◆ SetMaterialFloat()

void rendering_engine::PackedMaterialData::SetMaterialFloat ( const std::string &  name,
float  value 
)
inline

Definition at line 84 of file material_types.hpp.

85 {
86 for (const auto& entry : layout)
87 {
88 if (entry.name == name &&
90 {
91 std::memcpy(
92 buffer.data() + entry.offset,
93 &value,
94 sizeof(float)
95 );
96 return;
97 }
98 }
99 }
std::vector< MaterialParameterLayoutEntry > layout

◆ SetMaterialVec2()

void rendering_engine::PackedMaterialData::SetMaterialVec2 ( const std::string &  name,
const glm::vec2 &  value 
)
inline

Definition at line 101 of file material_types.hpp.

102 {
103 for (const auto& entry : layout)
104 {
105 if (entry.name == name &&
107 {
108 std::memcpy(
109 buffer.data() + entry.offset,
110 &value,
111 sizeof(glm::vec2)
112 );
113 return;
114 }
115 }
116 }

◆ SetMaterialVec3()

void rendering_engine::PackedMaterialData::SetMaterialVec3 ( const std::string &  name,
const glm::vec3 &  value 
)
inline

Definition at line 118 of file material_types.hpp.

119 {
120 for (const auto& entry : layout)
121 {
122 if (entry.name == name &&
124 {
125 std::memcpy(
126 buffer.data() + entry.offset,
127 &value,
128 sizeof(glm::vec3)
129 );
130 return;
131 }
132 }
133 }

◆ SetMaterialVec4()

void rendering_engine::PackedMaterialData::SetMaterialVec4 ( const std::string &  name,
const glm::vec4 &  value 
)
inline

Definition at line 135 of file material_types.hpp.

136 {
137 for (const auto& entry : layout)
138 {
139 if (entry.name == name && entry.type == MaterialParameterLayoutEntry::Type::Vec4)
140 {
141 std::memcpy(
142 buffer.data() + entry.offset,
143 &value,
144 sizeof(glm::vec4)
145 );
146 return;
147 }
148 }
149 }

Member Data Documentation

◆ buffer

std::vector<uint8_t> rendering_engine::PackedMaterialData::buffer

Definition at line 81 of file material_types.hpp.

◆ layout

std::vector<MaterialParameterLayoutEntry> rendering_engine::PackedMaterialData::layout

Definition at line 82 of file material_types.hpp.


The documentation for this struct was generated from the following file: