- void uniform(int, Uniform *);
- void uniform(int, int);
- void uniform(int, float);
- void uniform(int, float, float);
- void uniform2(int, const float *);
- void uniform(int, float, float, float);
- void uniform3(int, const float *);
- void uniform(int, float, float, float, float);
- void uniform4(int, const float *);
- void uniform_matrix4(int, const float *);
+private:
+ void uniform(const std::string &, Uniform *);
+public:
+ void uniform(const std::string &, int);
+ void uniform(const std::string &, float);
+ void uniform(const std::string &, int, int);
+ void uniform(const std::string &, float, float);
+ void uniform2(const std::string &, const int *);
+ void uniform2(const std::string &, const float *);
+ void uniform(const std::string &, int, int, int);
+ void uniform(const std::string &, float, float, float);
+ void uniform(const std::string &, const Vector3 &);
+ void uniform3(const std::string &, const int *);
+ void uniform3(const std::string &, const float *);
+ void uniform(const std::string &, int, int, int, int);
+ void uniform(const std::string &, float, float, float, float);
+ void uniform(const std::string &, const Vector4 &);
+ void uniform(const std::string &, const Color &);
+ void uniform4(const std::string &, const int *);
+ void uniform4(const std::string &, const float *);
+ void uniform(const std::string &, const LinAl::Matrix<float, 2, 2> &);
+ void uniform_matrix2(const std::string &, const float *);
+ void uniform(const std::string &, const LinAl::Matrix<float, 3, 3> &);
+ void uniform_matrix3(const std::string &, const float *);
+ void uniform(const std::string &, const Matrix &);
+ void uniform_matrix4(const std::string &, const float *);
+ void uniform1_array(const std::string &, unsigned, const int *);
+ void uniform1_array(const std::string &, unsigned, const float *);
+ void uniform2_array(const std::string &, unsigned, const int *);
+ void uniform2_array(const std::string &, unsigned, const float *);
+ void uniform3_array(const std::string &, unsigned, const int *);
+ void uniform3_array(const std::string &, unsigned, const float *);
+ void uniform4_array(const std::string &, unsigned, const int *);
+ void uniform4_array(const std::string &, unsigned, const float *);
+ void uniform_matrix4_array(const std::string &, unsigned, const float *);
+
+private:
+ unsigned compute_slot_mask(const Program::UniformBlockInfo &) const;
+ void update_block(UniformBlock &, const Program::UniformBlockInfo &) const;
+ SharedBlock *get_shared_block(const Program::UniformBlockInfo &) const;
+
+public:
+ /** Applies uniform blocks for the currently bound program, creating them
+ if needed. */