]> git.sesse.net Git - movit/blob - gamma_compression_effect.h
e4c79ab0c9faac750e877a84d5b7d768a65ef8ab
[movit] / gamma_compression_effect.h
1 #ifndef _GAMMA_COMPRESSION_EFFECT_H 
2 #define _GAMMA_COMPRESSION_EFFECT_H 1
3
4 #include "effect.h"
5 #include "effect_chain.h"
6
7 #define COMPRESSION_CURVE_SIZE 4096
8
9 class GammaCompressionEffect : public Effect {
10 public:
11         GammaCompressionEffect();
12         std::string output_fragment_shader();
13
14         virtual bool needs_srgb_primaries() const { return false; }
15
16 private:
17         GammaCurve destination_curve;
18         float compression_curve[COMPRESSION_CURVE_SIZE];
19 };
20
21 #endif // !defined(_GAMMA_COMPRESSION_EFFECT_H)