]> git.sesse.net Git - movit/blobdiff - effect.cpp
Another benchmarking data set fix.
[movit] / effect.cpp
index 060bf7dd35fca361c4c160c6b71cf242104019f8..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)
@@ -125,6 +142,16 @@ void Effect::register_uniform_int(const std::string &key, const int *value)
        uniforms_int.push_back(uniform);
 }
 
+void Effect::register_uniform_ivec2(const std::string &key, const int *values)
+{
+       Uniform<int> uniform;
+       uniform.name = key;
+       uniform.value = values;
+       uniform.num_values = 1;
+       uniform.location = -1;
+       uniforms_ivec2.push_back(uniform);
+}
+
 void Effect::register_uniform_float(const std::string &key, const float *value)
 {
        Uniform<float> uniform;
@@ -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;