X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Fcolorcurve.h;h=5cebcb00835e818fe2b44a303928b2b502c149f4;hp=b99bb14e2bac432e89cc78abae5b8e1f7ceab059;hb=38712d8ecc57d043a2419ffbaeeb57f7a6586f14;hpb=9a63244c1342337915c4610401a24c09fa72cc3d diff --git a/source/effects/colorcurve.h b/source/effects/colorcurve.h index b99bb14e..5cebcb00 100644 --- a/source/effects/colorcurve.h +++ b/source/effects/colorcurve.h @@ -2,14 +2,14 @@ #define MSP_GL_COLORCURVE_H_ #include "postprocessor.h" -#include "program.h" #include "programdata.h" #include "texture1d.h" -#include "texturing.h" namespace Msp { namespace GL { +class Program; + /** Processes oversaturated colors to preserve hues. When one color component exceeds 1.0, the overflow is distributed to the other components, scaling the @@ -34,33 +34,32 @@ public: void srgb(); }; - float exposure_adjust; - float brightness_response; - float gamma; - bool srgb; - - Template(); + float exposure_adjust = 0.0f; + float brightness_response = 0.4f; + float gamma = 1.0f; + bool srgb = false; - virtual ColorCurve *create(Resources &, unsigned, unsigned) const; + virtual ColorCurve *create(unsigned, unsigned) const; }; private: const Program &shprog; ProgramData shdata; Texture1D curve; - Texturing texturing; const Mesh &quad; const Sampler &linear_sampler; const Sampler &nearest_sampler; public: - ColorCurve(Resources &); + ColorCurve(); /** Set exposure adjustment in EV units. Positive values brighten the image, negative values darken it. Zero is neutral. */ void set_exposure_adjust(float); - /** Sets the exponent of the */ + /** Sets the exponent of the brightness response curve. It must be greater + than zero and at most one. A value of one gives a linear response; closer + to zero results in a more gentle curve. */ void set_brightness_response(float); /** Sets the gamma value used for mapping output colors. Allowed range is @@ -75,6 +74,8 @@ public: void set_linear(); virtual void render(Renderer &, const Texture2D &, const Texture2D &); + + virtual void set_debug_name(const std::string &); }; } // namespace GL