void uniform1_array(const std::string &, unsigned, const float *);
void uniform2_array(const std::string &, unsigned, const float *);
void uniform3_array(const std::string &, unsigned, const float *);
void uniform1_array(const std::string &, unsigned, const float *);
void uniform2_array(const std::string &, unsigned, const float *);
void uniform3_array(const std::string &, unsigned, const float *);