private:
// Should not be instantiated by end users;
// call EffectChain::add_ycbcr_output() instead.
- YCbCrConversionEffect(const YCbCrFormat &ycbcr_format);
+ YCbCrConversionEffect(const YCbCrFormat &ycbcr_format, GLenum type);
friend class EffectChain;
public:
- virtual std::string effect_type_id() const { return "YCbCrConversionEffect"; }
- std::string output_fragment_shader();
- void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num);
- virtual AlphaHandling alpha_handling() const { return DONT_CARE_ALPHA_TYPE; }
- virtual bool one_to_one_sampling() const { return true; }
+ std::string effect_type_id() const override { return "YCbCrConversionEffect"; }
+ std::string output_fragment_shader() override;
+ void set_gl_state(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num) override;
+ AlphaHandling alpha_handling() const override { return DONT_CARE_ALPHA_TYPE; }
+ bool strong_one_to_one_sampling() const override { return true; }
// Should not be called by end users; call
// EffectChain::change_ycbcr_output_format() instead.
private:
YCbCrFormat ycbcr_format;
+ GLenum type;
Eigen::Matrix3d uniform_ycbcr_matrix;
float uniform_offset[3];