X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=lift_gamma_gain_effect.h;h=6e2ea19a4d54231620d6eb6039e67571a98e5c16;hp=b5007721710b28173130e6701650474df57cc20d;hb=eff011224abc5dc81f801f3ea44572287a55bcac;hpb=cfc161e0289c2169d4835c48751ff56b97355eb2 diff --git a/lift_gamma_gain_effect.h b/lift_gamma_gain_effect.h index b500772..6e2ea19 100644 --- a/lift_gamma_gain_effect.h +++ b/lift_gamma_gain_effect.h @@ -20,7 +20,7 @@ // Also, gamma is a case where we would not want premultiplied alpha. // Thus, we have to divide away alpha first, and then re-multiply it back later. -#include +#include #include #include "effect.h" @@ -30,14 +30,16 @@ namespace movit { class LiftGammaGainEffect : public Effect { public: LiftGammaGainEffect(); - virtual std::string effect_type_id() const { return "LiftGammaGainEffect"; } - virtual AlphaHandling alpha_handling() const { return INPUT_PREMULTIPLIED_ALPHA_KEEP_BLANK; } - std::string output_fragment_shader(); + std::string effect_type_id() const override { return "LiftGammaGainEffect"; } + AlphaHandling alpha_handling() const override { return INPUT_PREMULTIPLIED_ALPHA_KEEP_BLANK; } + bool strong_one_to_one_sampling() const override { return true; } + std::string output_fragment_shader() override; - void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num); + void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) override; private: RGBTriplet lift, gamma, gain; + RGBTriplet uniform_gain_pow_inv_gamma, uniform_inv_gamma22; }; } // namespace movit