X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=lift_gamma_gain_effect.h;h=7967448d935105e3de78a19c9b5ab07ef23a5137;hp=bd1ec16a6d8743e6dfa83cd9848e78b959636a7c;hb=refs%2Fheads%2F1.3.x-release;hpb=37f56fcbe571b2322243f6de59494bf9e0cbb37a diff --git a/lift_gamma_gain_effect.h b/lift_gamma_gain_effect.h index bd1ec16..7967448 100644 --- a/lift_gamma_gain_effect.h +++ b/lift_gamma_gain_effect.h @@ -1,5 +1,5 @@ -#ifndef _LIFT_GAMMA_GAIN_EFFECT_H -#define _LIFT_GAMMA_GAIN_EFFECT_H 1 +#ifndef _MOVIT_LIFT_GAMMA_GAIN_EFFECT_H +#define _MOVIT_LIFT_GAMMA_GAIN_EFFECT_H 1 // A simple lift/gamma/gain effect, used for color grading. // @@ -20,22 +20,28 @@ // 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" +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; } + virtual bool one_to_one_sampling() const { return true; } std::string output_fragment_shader(); void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num); private: RGBTriplet lift, gamma, gain; + RGBTriplet uniform_gain_pow_inv_gamma, uniform_inv_gamma22; }; -#endif // !defined(_LIFT_GAMMA_GAIN_EFFECT_H) +} // namespace movit + +#endif // !defined(_MOVIT_LIFT_GAMMA_GAIN_EFFECT_H)