X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=overlay_effect.h;fp=overlay_effect.h;h=06ff7939128257e9ccc006e3076b3e91b29aaeb5;hb=5e05605a85a15944b95d7000745446756cdcbfa8;hp=0000000000000000000000000000000000000000;hpb=49ef2523611e215b327cd26f7bf698d1516edd46;p=movit diff --git a/overlay_effect.h b/overlay_effect.h new file mode 100644 index 0000000..06ff793 --- /dev/null +++ b/overlay_effect.h @@ -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)