+ void set_pitch(unsigned channel, unsigned pitch)
+ {
+ assert(pitch != 0);
+ assert(channel >= 0 && channel < num_channels);
+ this->pitch[channel] = pitch;
+ invalidate_pixel_data();
+ }
+
+ // Tells the input to use the specific OpenGL texture as pixel data for the given
+ // channel. The comments on FlatInput::set_texture_num() also apply here, except
+ // that this input generally does not use mipmaps.
+ void set_texture_num(unsigned channel, GLuint texture_num)
+ {
+ possibly_release_texture(channel);
+ this->texture_num[channel] = texture_num;
+ this->owns_texture[channel] = false;
+ }
+
+ // You can change the Y'CbCr format freely, also after finalize,
+ // although with one limitation: If Cb and Cr come from the same
+ // texture and their offsets offsets are the same (ie., within 1e-6)
+ // when finalizing, they most continue to be so forever, as this
+ // optimization is compiled into the shader.
+ //
+ // If you change subsampling parameters, you'll need to call
+ // set_width() / set_height() again after this.
+ void change_ycbcr_format(const YCbCrFormat &ycbcr_format);
+
+ void inform_added(EffectChain *chain) override
+ {
+ resource_pool = chain->get_resource_pool();
+ }
+
+ bool set_int(const std::string& key, int value) override;
+