]> git.sesse.net Git - movit/blobdiff - lift_gamma_gain_effect.cpp
Send the right inv_gamma_22 variable to the uniforms.
[movit] / lift_gamma_gain_effect.cpp
index eef04d54a4bd2e5141159adec62eaf073267899e..b32ed93027f265873accad9ecf94f609315555eb 100644 (file)
@@ -1,3 +1,9 @@
+#define GL_GLEXT_PROTOTYPES 1
+
+#include <math.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+
 #include "lift_gamma_gain_effect.h"
 #include "util.h"
 
@@ -15,5 +21,22 @@ LiftGammaGainEffect::LiftGammaGainEffect()
 
 std::string LiftGammaGainEffect::output_glsl()
 {
-       return read_file("todo.glsl");
+       return read_file("lift_gamma_gain_effect.glsl");
+}
+
+void LiftGammaGainEffect::set_uniforms(GLhandleARB glsl_program_num, const std::string &prefix)
+{
+       Effect::set_uniforms(glsl_program_num, prefix);
+
+       RGBTriplet gain_pow_inv_gamma(
+               pow(gain.r, 1.0f / gamma.r),
+               pow(gain.g, 1.0f / gamma.g),
+               pow(gain.b, 1.0f / gamma.b));
+       set_uniform_vec3(glsl_program_num, prefix, "gain_pow_inv_gamma", (float *)&gain_pow_inv_gamma);
+
+       RGBTriplet inv_gamma_22(
+               2.2f / gamma.r,
+               2.2f / gamma.g,
+               2.2f / gamma.b);
+       set_uniform_vec3(glsl_program_num, prefix, "inv_gamma_22", (float *)&inv_gamma_22);
 }