1 #ifndef MSP_GL_UNIFORMBLOCK_H_
2 #define MSP_GL_UNIFORMBLOCK_H_
5 #include <msp/core/noncopyable.h>
6 #include "bufferable.h"
7 #include "reflectdata.h"
13 Stores uniforms with a specific layout. Both named and default uniform blocks
16 class UniformBlock: public NonCopyable, public Bufferable
19 std::vector<char> data;
22 UniformBlock(const ReflectData::UniformBlockInfo &);
24 virtual unsigned get_data_size() const { return data.size(); }
25 virtual const void *get_data_pointer() const { return &data[0]; }
27 virtual unsigned get_alignment() const;
30 void store(const ReflectData::UniformInfo &, unsigned, const void *);