]> git.sesse.net Git - movit/blobdiff - multiply_effect.h
Promote MultiplyEffect to a real effect.
[movit] / multiply_effect.h
diff --git a/multiply_effect.h b/multiply_effect.h
new file mode 100644 (file)
index 0000000..8de261a
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef _MOVIT_MULTIPLY_EFFECT_H
+#define _MOVIT_MULTIPLY_EFFECT_H 1
+
+// An effect that multiplies every pixel by a constant (separate for each of
+// R, G, B, A). A common use would be to reduce the alpha of an overlay before
+// sending it through OverlayEffect, e.g. with R=G=B=A=0.3 to get 30% alpha
+// (remember, alpha is premultiplied).
+
+#include <GL/glew.h>
+#include <string>
+
+#include "effect.h"
+
+class MultiplyEffect : public Effect {
+public:
+       MultiplyEffect();
+       virtual std::string effect_type_id() const { return "MultiplyEffect"; }
+       std::string output_fragment_shader();
+
+private:
+       RGBATuple factor;
+};
+
+#endif // !defined(_MOVIT_MULTIPLY_EFFECT_H)