]> git.sesse.net Git - movit/blobdiff - blur_effect.h
In resizing effects, add the notion of a “virtual output size”.
[movit] / blur_effect.h
index 7f92074b882b2b1b06c1e34128d97a2dc5a5cc6e..792014b9214a7e7390a53762dcc5fe0992df101f 100644 (file)
@@ -24,6 +24,7 @@ public:
        virtual bool needs_texture_bounce() const { return true; }
        virtual bool needs_mipmaps() const { return true; }
        virtual bool needs_srgb_primaries() const { return false; }
+       virtual AlphaHandling alpha_handling() const { return INPUT_AND_OUTPUT_ALPHA_PREMULTIPLIED; }
 
        virtual void inform_input_size(unsigned input_num, unsigned width, unsigned height);
 
@@ -65,9 +66,11 @@ public:
        }
        virtual bool changes_output_size() const { return true; }
 
-       virtual void get_output_size(unsigned *width, unsigned *height) const {
+       virtual void get_output_size(unsigned *width, unsigned *height, unsigned *virtual_width, unsigned *virtual_height) const {
                *width = this->width;
                *height = this->height;
+               *virtual_width = this->virtual_width;
+               *virtual_height = this->virtual_height;
        }
 
        void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num);
@@ -79,7 +82,7 @@ private:
        BlurEffect *parent;
        float radius;
        Direction direction;
-       int width, height;
+       int width, height, virtual_width, virtual_height;
 };
 
 #endif // !defined(_BLUR_EFFECT_H)