]> git.sesse.net Git - movit/blobdiff - slice_effect.h
Convert a loop to range-based for.
[movit] / slice_effect.h
index 89aeb0e4297eaac7eebd0985833c6549adc5829d..9886df7e5c4e463b2c99cefc48b3d74d8987bed9 100644 (file)
@@ -20,16 +20,17 @@ namespace movit {
 class SliceEffect : public Effect {
 public:
        SliceEffect();
-       virtual std::string effect_type_id() const { return "SliceEffect"; }
-       std::string output_fragment_shader();
-       virtual bool needs_texture_bounce() const { return true; }
-       virtual bool changes_output_size() const { return true; }
-       virtual void inform_input_size(unsigned input_num, unsigned width, unsigned height);
-       virtual void get_output_size(unsigned *width, unsigned *height,
-                                    unsigned *virtual_width, unsigned *virtual_height) const;
-
-       void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num);
-       virtual void inform_added(EffectChain *chain) { this->chain = chain; }
+       std::string effect_type_id() const override { return "SliceEffect"; }
+       std::string output_fragment_shader() override;
+       bool needs_texture_bounce() const override { return true; }
+       bool changes_output_size() const override { return true; }
+       bool sets_virtual_output_size() const override { return false; }
+       void inform_input_size(unsigned input_num, unsigned width, unsigned height) override;
+       void get_output_size(unsigned *width, unsigned *height,
+                            unsigned *virtual_width, unsigned *virtual_height) const override;
+
+       void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) override;
+       void inform_added(EffectChain *chain) override { this->chain = chain; }
        
        enum Direction { HORIZONTAL = 0, VERTICAL = 1 };
 
@@ -39,6 +40,9 @@ private:
        int input_slice_size, output_slice_size;
        int offset;
        Direction direction;
+
+       float uniform_output_coord_to_slice_num, uniform_slice_num_to_input_coord;
+       float uniform_slice_offset_to_input_coord, uniform_offset;
 };
 
 }  // namespace movit