20 void Push(
const T&
object, std::size_t offset, std::size_t size)
22 std::memcpy(m_Data.get() + offset, &
object, size);
26 void Push(
const std::string& uniformName,
const T&
object, std::size_t size = 0)
33 auto uniform = m_UniformBlock->GetUniform(uniformName);
44 realSize = std::min(
sizeof(
object),
static_cast<std::size_t
>(uniform->GetSize()));
47 Push(
object,
static_cast<std::size_t
>(uniform->GetOffset()), realSize);
50 bool Update(
const std::optional<Shader::UniformBlock>& uniformBlock);
56 std::optional<Shader::UniformBlock> m_UniformBlock;
57 std::unique_ptr<char[]> m_Data;