+void Effect::register_uniform_int(const std::string &key, const int *value)
+{
+ Uniform<int> uniform;
+ uniform.name = key;
+ uniform.value = value;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_int.push_back(uniform);
+}
+
+void Effect::register_uniform_float(const std::string &key, const float *value)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = value;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_float.push_back(uniform);
+}
+
+void Effect::register_uniform_vec2(const std::string &key, const float *values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_vec2.push_back(uniform);
+}
+
+void Effect::register_uniform_vec3(const std::string &key, const float *values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_vec3.push_back(uniform);
+}
+
+void Effect::register_uniform_vec4(const std::string &key, const float *values)
+{
+ Uniform<float> uniform;
+ uniform.name = key;
+ uniform.value = values;
+ uniform.num_values = 1;
+ uniform.location = -1;
+ uniforms_vec4.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_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