1b5644ba62db9a835e911484e21897b3bb1abf27
[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         virtual std::string effect_type_id() const { return "GlowEffect"; }
15
16         virtual bool needs_srgb_primaries() const { return false; }
17
18         virtual void add_self_to_effect_chain(EffectChain *chain, const std::vector<Effect *> &input);
19         virtual bool set_float(const std::string &key, float value);
20
21         virtual std::string output_fragment_shader() {
22                 assert(false);
23         }
24         virtual void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) {
25                 assert(false);
26         }
27
28 private:
29         BlurEffect *blur;
30         MixEffect *mix;
31 };
32
33 #endif // !defined(_GLOW_EFFECT_H)