X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=complex_modulate_effect.h;h=45f8dde4c400f5ecc745d6d8bf1acbddacbe4bbb;hp=fd4eb8b2a385adb7db6bc706cb356fdcaa96a3e4;hb=9fe4726ad2c0c6282dcb53f4a8008b53febd9473;hpb=15daf781e6ce00ec37ca806a16e490d59dcb4e24 diff --git a/complex_modulate_effect.h b/complex_modulate_effect.h index fd4eb8b..45f8dde 100644 --- a/complex_modulate_effect.h +++ b/complex_modulate_effect.h @@ -33,27 +33,29 @@ class EffectChain; class ComplexModulateEffect : public Effect { public: ComplexModulateEffect(); - virtual std::string effect_type_id() const { return "ComplexModulateEffect"; } - std::string output_fragment_shader(); + std::string effect_type_id() const override { return "ComplexModulateEffect"; } + std::string output_fragment_shader() override; // Technically we only need texture bounce for the second input // (to be allowed to mess with its sampler state), but there's // no way of expressing that currently. - virtual bool needs_texture_bounce() const { return true; } - virtual bool changes_output_size() const { return true; } + 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; } - 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; - virtual unsigned num_inputs() const { return 2; } - virtual void inform_added(EffectChain *chain) { this->chain = chain; } + 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; + unsigned num_inputs() const override { return 2; } + void inform_added(EffectChain *chain) override { this->chain = chain; } - void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num); + void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) override; private: EffectChain *chain; int primary_input_width, primary_input_height; int num_repeats_x, num_repeats_y; + float uniform_num_repeats[2]; }; } // namespace movit