]> git.sesse.net Git - movit/blobdiff - effect.cpp
Another benchmarking data set fix.
[movit] / effect.cpp
index df73eeae2078b7834c7798a1afa9d30b83a26c4b..805138f019458320db49ab62a7f746812cdd7bd8 100644 (file)
@@ -21,6 +21,15 @@ bool Effect::set_int(const string &key, int value)
        return true;
 }
 
+bool Effect::set_ivec2(const string &key, const int *values)
+{
+       if (params_ivec2.count(key) == 0) {
+               return false;
+       }
+       memcpy(params_ivec2[key], values, sizeof(int) * 2);
+       return true;
+}
+
 bool Effect::set_float(const string &key, float value)
 {
        if (params_float.count(key) == 0) {
@@ -61,6 +70,14 @@ void Effect::register_int(const string &key, int *value)
 {
        assert(params_int.count(key) == 0);
        params_int[key] = value;
+       register_uniform_int(key, value);
+}
+
+void Effect::register_ivec2(const string &key, int *values)
+{
+       assert(params_ivec2.count(key) == 0);
+       params_ivec2[key] = values;
+       register_uniform_ivec2(key, values);
 }
 
 void Effect::register_float(const string &key, float *value)
@@ -95,6 +112,16 @@ void Effect::set_gl_state(GLuint glsl_program_num, const string& prefix, unsigne
 
 void Effect::clear_gl_state() {}
 
+void Effect::register_uniform_sampler2d(const std::string &key, const GLint *value)
+{
+       Uniform<int> uniform;
+       uniform.name = key;
+       uniform.value = value;
+       uniform.num_values = 1;
+       uniform.location = -1;
+       uniforms_sampler2d.push_back(uniform);
+}
+
 void Effect::register_uniform_bool(const std::string &key, const bool *value)
 {
        Uniform<bool> uniform;
@@ -115,14 +142,14 @@ void Effect::register_uniform_int(const std::string &key, const int *value)
        uniforms_int.push_back(uniform);
 }
 
-void Effect::register_uniform_sampler2d(const std::string &key, const GLint *value)
+void Effect::register_uniform_ivec2(const std::string &key, const int *values)
 {
        Uniform<int> uniform;
        uniform.name = key;
-       uniform.value = value;
+       uniform.value = values;
        uniform.num_values = 1;
        uniform.location = -1;
-       uniforms_sampler2d.push_back(uniform);
+       uniforms_ivec2.push_back(uniform);
 }
 
 void Effect::register_uniform_float(const std::string &key, const float *value)
@@ -165,6 +192,16 @@ void Effect::register_uniform_vec4(const std::string &key, const float *values)
        uniforms_vec4.push_back(uniform);
 }
 
+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;
@@ -175,6 +212,16 @@ void Effect::register_uniform_vec2_array(const std::string &key, const float *va
        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;