2 #define _BLUR_EFFECT_H 1
6 class SingleBlurPassEffect;
8 class BlurEffect : public Effect {
12 virtual std::string output_fragment_shader() {
15 virtual void set_uniforms(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) {
19 virtual bool needs_many_samples() const { return true; }
20 virtual bool needs_mipmaps() const { return true; }
21 virtual void add_self_to_effect_chain(std::vector<Effect *> *chain);
22 virtual bool set_float(const std::string &key, float value);
25 SingleBlurPassEffect *hpass, *vpass;
28 class SingleBlurPassEffect : public Effect {
30 SingleBlurPassEffect();
31 std::string output_fragment_shader();
33 virtual bool needs_many_samples() const { return true; }
34 virtual bool needs_mipmaps() const { return true; }
36 void set_uniforms(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num);
38 enum Direction { HORIZONTAL = 0, VERTICAL = 1 };
45 #endif // !defined(_BLUR_EFFECT_H)