]> git.sesse.net Git - movit/blobdiff - overlay_effect.h
Added an overlay effect, implementing the atop effect.
[movit] / overlay_effect.h
diff --git a/overlay_effect.h b/overlay_effect.h
new file mode 100644 (file)
index 0000000..06ff793
--- /dev/null
@@ -0,0 +1,25 @@
+#ifndef _OVERLAY_EFFECT_H
+#define _OVERLAY_EFFECT_H 1
+
+// Put one image on top of another, using alpha where appropriate.
+// (If both images are the same aspect and the top image has alpha=1.0
+// for all pixels, you will not see anything of the one on the bottom.)
+//
+// This is the “atop” operation from Porter-Duff blending, also used
+// when merging layers in e.g. GIMP or Photoshop.
+//
+// The first input is the bottom, and the second is the top.
+
+#include "effect.h"
+
+class OverlayEffect : public Effect {
+public:
+       OverlayEffect();
+       virtual std::string effect_type_id() const { return "OverlayEffect"; }
+       std::string output_fragment_shader();
+
+       virtual bool needs_srgb_primaries() const { return false; }
+       virtual unsigned num_inputs() const { return 2; }
+};
+
+#endif // !defined(_OVERLAY_EFFECT_H)