1 #ifndef MSP_GL_COLORCURVE_H_
2 #define MSP_GL_COLORCURVE_H_
4 #include "postprocessor.h"
6 #include "programdata.h"
14 Processes oversaturated colors to preserve hues. When one color component
15 exceeds 1.0, the others are scaled towards white. A transition curve is also
16 applied near 1.0 to prevent the abrupt change in the gradient.
18 Gamma or sRGB correction can also be applied to the output. It can be used to
19 improve color reproduction by performing lighting calculations in linear color
20 space and converting to sRGB for display.
22 class ColorCurve: public PostProcessor
34 /// Sets the size of the peak zone. Must be between 0 and 1, inclusive.
37 /** Sets brightness for oversaturated colors. Must be >= 1. Suggested
38 values are between 1.5 and 2.0; a value of 1.0 will clamp colors to the
40 void set_brightness(float);
42 /** Sets the gamma value used for mapping output colors. Allowed range is
44 void set_gamma(float);
46 /** Sets output mapping to sRGB. This is almost, but not exactly equivalent
50 /// Sets output mapping to linear. This is equivalent to set_gamma(1).
53 virtual void render(Renderer &, const Texture2D &, const Texture2D &);