namespace Msp {
namespace GL {
+class Buffer;
class Color;
class Matrix;
class Program;
typedef std::map<std::string, Uniform *> UniformMap;
typedef std::map<unsigned, Block> BlockMap;
+ // XXX All these mutables are a bit silly, but I'm out of better ideas
UniformMap uniforms;
mutable BlockMap blocks;
+ mutable UniformBlock *last_block;
+ mutable Buffer *buffer;
mutable bool modified;
ProgramData &operator=(const ProgramData &);
void uniform4_array(const std::string &, unsigned, const float *);
void uniform_matrix4_array(const std::string &, unsigned, const float *);
- const UniformBlock &get_block(const Program &) const;
+ const UniformBlock &get_block(const Program &, const std::string &) const;
void apply() const;
};