Make Input an abstract base class, and move the current functionality into FlatInput...
[movit] / glow_effect.h
1 #ifndef _GLOW_EFFECT_H
2 #define _GLOW_EFFECT_H 1
3
4 // Glow: Simply add a blurred version of the image to itself.
5
6 #include "effect.h"
7
8 class BlurEffect;
9 class MixEffect;
10
11 class GlowEffect : public Effect {
12 public:
13         GlowEffect();
14
15         virtual bool needs_srgb_primaries() const { return false; }
16
17         virtual void add_self_to_effect_chain(EffectChain *chain, const std::vector<Effect *> &input);
18         virtual bool set_float(const std::string &key, float value);
19
20         virtual std::string output_fragment_shader() {
21                 assert(false);
22         }
23         virtual void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) {
24                 assert(false);
25         }
26
27 private:
28         BlurEffect *blur;
29         MixEffect *mix;
30 };
31
32 #endif // !defined(_GLOW_EFFECT_H)