X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=lift_gamma_gain_effect.cpp;h=acfeb86875a8841aabbc91a8602186713371087e;hb=bfa58911af9e945f3532a2c48306b4e9e293e0f7;hp=149cb4463931dc9836df4360dd35a2480ea3d0fd;hpb=6a6d09d15fe9388db0490249928e5b8252b6b9ce;p=movit diff --git a/lift_gamma_gain_effect.cpp b/lift_gamma_gain_effect.cpp index 149cb44..acfeb86 100644 --- a/lift_gamma_gain_effect.cpp +++ b/lift_gamma_gain_effect.cpp @@ -1,3 +1,9 @@ +#define GL_GLEXT_PROTOTYPES 1 + +#include +#include +#include + #include "lift_gamma_gain_effect.h" #include "util.h" @@ -17,3 +23,20 @@ std::string LiftGammaGainEffect::output_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 *)&gain_pow_inv_gamma); +}