private:
void uniform(const std::string &, Uniform *);
public:
+ void uniform(const std::string &, const Uniform &);
void uniform(const std::string &, int);
void uniform(const std::string &, float);
void uniform(const std::string &, int, int);
void uniform_matrix4_array(const std::string &, unsigned, const float *);
void remove_uniform(const std::string &);
+ std::vector<std::string> get_uniform_names() const;
+ const Uniform &get_uniform(const std::string &) const;
+
private:
unsigned compute_slot_mask(const Program::UniformBlockInfo &) const;
void update_block(UniformBlock &, const Program::UniformBlockInfo &) const;