109 m_ShaderId = rhs.m_ShaderId;
111 for(
const auto& uniform : rhs.m_Uniforms)
113 m_Uniforms[uniform.first] = uniform.second;
121 m_ShaderId = rhs.m_ShaderId;
124 for (
const auto& pair : rhs.m_Uniforms)
126 m_Uniforms[pair.first] = pair.second;
134 m_ShaderId = rhs.m_ShaderId;
135 m_Uniforms = std::move(rhs.m_Uniforms);
143 m_ShaderId = rhs.m_ShaderId;
144 m_Uniforms = std::move(rhs.m_Uniforms);
155 if (!m_Uniforms.contains(name))
159 memcpy(m_Uniforms[name].Value, value, size);
165 if(!m_Uniforms.contains(name))
169 memcpy(m_Uniforms[name].Value, &value,
sizeof(
T));
176 std::unordered_map<std::string, UniformValue> m_Uniforms{};
unsigned char ubyte
Unsigned byte type.
Definition BasicTypes.h:31
unsigned __int32 u32
Unsigned integer 32 bit type.
Definition BasicTypes.h:55
#define NODISCARD
Definition Common.h:80
Definition OpenGLMaterial.h:102
void Bind()
Definition OpenGLMaterial.cpp:44
NODISCARD const ShaderValue & GetUniformValue(const std::string &name)
Definition OpenGLMaterial.h:173
OpenGLMaterial(OpenGLMaterial const &rhs)
Definition OpenGLMaterial.h:107
~OpenGLMaterial()=default
void SetValuePtr(const char *name, ubyte *value, size_t size)
Definition OpenGLMaterial.h:153
OpenGLMaterial(OpenGLMaterial &&rhs) noexcept
Definition OpenGLMaterial.h:132
OpenGLMaterial(u32 shaderId)
Definition OpenGLMaterial.cpp:32
void UnBind() const
Definition OpenGLMaterial.cpp:96
void SetValue(const char *name, const T value)
Definition OpenGLMaterial.h:163
OpenGLMaterial & operator=(OpenGLMaterial &&rhs) noexcept
Definition OpenGLMaterial.h:139
OpenGLMaterial & operator=(const OpenGLMaterial &rhs)
Definition OpenGLMaterial.h:117
Definition OpenGLCommon.h:47
Definition OpenGLShader.h:63