]> git.sesse.net Git - movit/blob - multiply_effect.h
Release Movit 1.6.1.
[movit] / multiply_effect.h
1 #ifndef _MOVIT_MULTIPLY_EFFECT_H
2 #define _MOVIT_MULTIPLY_EFFECT_H 1
3
4 // An effect that multiplies every pixel by a constant (separate for each of
5 // R, G, B, A). A common use would be to reduce the alpha of an overlay before
6 // sending it through OverlayEffect, e.g. with R=G=B=A=0.3 to get 30% alpha
7 // (remember, alpha is premultiplied).
8
9 #include <epoxy/gl.h>
10 #include <string>
11
12 #include "effect.h"
13
14 namespace movit {
15
16 class MultiplyEffect : public Effect {
17 public:
18         MultiplyEffect();
19         std::string effect_type_id() const override { return "MultiplyEffect"; }
20         std::string output_fragment_shader() override;
21         bool strong_one_to_one_sampling() const override { return true; }
22
23 private:
24         RGBATuple factor;
25 };
26
27 }  // namespace movit
28
29 #endif // !defined(_MOVIT_MULTIPLY_EFFECT_H)