]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/colorcurve.h
Use default member initializers for simple types
[libs/gl.git] / source / effects / colorcurve.h
index b99bb14e2bac432e89cc78abae5b8e1f7ceab059..5cebcb00835e818fe2b44a303928b2b502c149f4 100644 (file)
@@ -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