+
+void Effect::register_uniform_float_array(const std::string &key, const float *values, size_t num_values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = num_values;
+ uniform.location = -1;
+ uniforms_float_array.push_back(uniform);
+}
+
+void Effect::register_uniform_vec2_array(const std::string &key, const float *values, size_t num_values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = num_values;
+ uniform.location = -1;
+ uniforms_vec2_array.push_back(uniform);
+}
+
+void Effect::register_uniform_vec3_array(const std::string &key, const float *values, size_t num_values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = num_values;
+ uniform.location = -1;
+ uniforms_vec3_array.push_back(uniform);
+}
+
+void Effect::register_uniform_vec4_array(const std::string &key, const float *values, size_t num_values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = num_values;
+ uniform.location = -1;
+ uniforms_vec4_array.push_back(uniform);
+}
+
+void Effect::register_uniform_mat3(const std::string &key, const Matrix3d *matrix)
+{
+ Uniform<Matrix3d> uniform;
+ uniform.name = key;
+ uniform.value = matrix;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_mat3.push_back(uniform);
+}
+
+} // namespace movit