- 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(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, 2, 3> &);
- void uniform_matrix3x2(const std::string &, const float *);
- void uniform(const std::string &, const LinAl::Matrix<float, 2, 4> &);
- void uniform_matrix4x2(const std::string &, const float *);
- void uniform(const std::string &, const LinAl::Matrix<float, 3, 2> &);
- void uniform_matrix2x3(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 LinAl::Matrix<float, 3, 4> &);
- void uniform_matrix4x3(const std::string &, const float *);
- void uniform(const std::string &, const LinAl::Matrix<float, 4, 2> &);
- void uniform_matrix2x4(const std::string &, const float *);
- void uniform(const std::string &, const LinAl::Matrix<float, 4, 3> &);
- void uniform_matrix3x4(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_matrix2_array(const std::string &, unsigned, const float *);
- void uniform_matrix3x2_array(const std::string &, unsigned, const float *);
- void uniform_matrix4x2_array(const std::string &, unsigned, const float *);
- void uniform_matrix2x3_array(const std::string &, unsigned, const float *);
- void uniform_matrix3_array(const std::string &, unsigned, const float *);
- void uniform_matrix4x3_array(const std::string &, unsigned, const float *);
- void uniform_matrix2x4_array(const std::string &, unsigned, const float *);
- void uniform_matrix3x4_array(const std::string &, unsigned, const float *);
- 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;
- const Uniform *find_uniform(const std::string &) const;
+ void uniform(Tag, const Uniform &);
+ void uniform(Tag, int);
+ void uniform(Tag, float);
+ void uniform(Tag, int, int);
+ void uniform(Tag, float, float);
+ void uniform2(Tag, const int *);
+ void uniform2(Tag, const float *);
+ void uniform(Tag, int, int, int);
+ void uniform(Tag, float, float, float);
+ void uniform3(Tag, const int *);
+ void uniform3(Tag, const float *);
+ void uniform(Tag, int, int, int, int);
+ void uniform(Tag, float, float, float, float);
+ void uniform(Tag, const Color &);
+ void uniform4(Tag, const int *);
+ void uniform4(Tag, const float *);
+ void uniform_matrix2(Tag, const float *);
+ void uniform_matrix3x2(Tag, const float *);
+ void uniform_matrix4x2(Tag, const float *);
+ void uniform_matrix2x3(Tag, const float *);
+ void uniform_matrix3(Tag, const float *);
+ void uniform_matrix4x3(Tag, const float *);
+ void uniform_matrix2x4(Tag, const float *);
+ void uniform_matrix3x4(Tag, const float *);
+ void uniform(Tag, const Matrix &);
+ void uniform_matrix4(Tag, const float *);
+ void uniform_array(Tag, unsigned, const int *);
+ void uniform_array(Tag, unsigned, const float *);
+ void uniform1_array(Tag, unsigned, const int *);
+ void uniform1_array(Tag, unsigned, const float *);
+ void uniform2_array(Tag, unsigned, const int *);
+ void uniform2_array(Tag, unsigned, const float *);
+ void uniform3_array(Tag, unsigned, const int *);
+ void uniform3_array(Tag, unsigned, const float *);
+ void uniform4_array(Tag, unsigned, const int *);
+ void uniform4_array(Tag, unsigned, const float *);
+ void uniform_matrix2_array(Tag, unsigned, const float *);
+ void uniform_matrix3x2_array(Tag, unsigned, const float *);
+ void uniform_matrix4x2_array(Tag, unsigned, const float *);
+ void uniform_matrix2x3_array(Tag, unsigned, const float *);
+ void uniform_matrix3_array(Tag, unsigned, const float *);
+ void uniform_matrix4x3_array(Tag, unsigned, const float *);
+ void uniform_matrix2x4_array(Tag, unsigned, const float *);
+ void uniform_matrix3x4_array(Tag, unsigned, const float *);
+ void uniform_matrix4_array(Tag, unsigned, const float *);
+
+ template<typename T, unsigned N>
+ void uniform(Tag, const LinAl::Vector<T, N> &);
+
+ template<typename T, unsigned R, unsigned C>
+ void uniform(Tag, const LinAl::Matrix<T, R, C> &);
+
+ template<typename T, unsigned N>
+ void uniform_array(Tag, unsigned, const LinAl::Vector<T, N> *);
+
+ template<typename T, unsigned R, unsigned C>
+ void uniform_array(Tag, unsigned, const LinAl::Matrix<T, R, C> *);
+
+ void remove_uniform(Tag);
+
+ unsigned get_generation() const { return generation; }
+
+ std::vector<Tag> get_uniform_tags() const;
+ const Uniform &get_uniform(Tag) const;
+ const Uniform *find_uniform(Tag) const;