X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=lift_gamma_gain_effect.cpp;h=ac8ccb6347b3ae9f7e9f574854551a271f26518e;hp=8be3a7692ea35b782ffbbd7f381d25e7841f1338;hb=6a176580b95002657b381acfaf3892b345e28364;hpb=96a1cff51a8b7dc45ebe725e0d0685eecce31331 diff --git a/lift_gamma_gain_effect.cpp b/lift_gamma_gain_effect.cpp index 8be3a76..ac8ccb6 100644 --- a/lift_gamma_gain_effect.cpp +++ b/lift_gamma_gain_effect.cpp @@ -1,12 +1,14 @@ -#define GL_GLEXT_PROTOTYPES 1 - +#include #include -#include -#include +#include "effect_util.h" #include "lift_gamma_gain_effect.h" #include "util.h" +using namespace std; + +namespace movit { + LiftGammaGainEffect::LiftGammaGainEffect() : lift(0.0f, 0.0f, 0.0f), gamma(1.0f, 1.0f, 1.0f), @@ -15,26 +17,28 @@ LiftGammaGainEffect::LiftGammaGainEffect() register_vec3("lift", (float *)&lift); register_vec3("gamma", (float *)&gamma); register_vec3("gain", (float *)&gain); + register_uniform_vec3("gain_pow_inv_gamma", (float *)&uniform_gain_pow_inv_gamma); + register_uniform_vec3("inv_gamma_22", (float *)&uniform_inv_gamma22); } -std::string LiftGammaGainEffect::output_glsl() +string LiftGammaGainEffect::output_fragment_shader() { - return read_file("lift_gamma_gain_effect.glsl"); + return read_file("lift_gamma_gain_effect.frag"); } -void LiftGammaGainEffect::set_uniforms(GLuint glsl_program_num, const std::string &prefix) +void LiftGammaGainEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, unsigned *sampler_num) { - Effect::set_uniforms(glsl_program_num, prefix); + Effect::set_gl_state(glsl_program_num, prefix, sampler_num); - RGBTriplet gain_pow_inv_gamma( + uniform_gain_pow_inv_gamma = RGBTriplet( 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( + uniform_inv_gamma22 = RGBTriplet( 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); } + +} // namespace movit