public:
BlurEffect();
+ virtual bool needs_srgb_primaries() const { return false; }
+
virtual std::string output_fragment_shader() {
assert(false);
}
SingleBlurPassEffect();
std::string output_fragment_shader();
+ virtual bool needs_srgb_primaries() const { return false; }
virtual bool needs_texture_bounce() const { return true; }
virtual bool needs_mipmaps() const { return true; }
DiffusionEffect();
std::string output_fragment_shader();
+ virtual bool needs_srgb_primaries() const { return false; }
+
virtual void add_self_to_effect_chain(EffectChain *chain, const std::vector<Effect *> &input);
virtual bool set_float(const std::string &key, float value);
// set of RGB primaries; you would currently not get YCbCr
// or something similar).
//
- // Again, most effects will want this.
+ // Again, most effects will want this, but you can set it to false
+ // if you process each channel independently, equally _and_
+ // in a linear fashion.
virtual bool needs_srgb_primaries() const { return true; }
// Whether this effect expects its input to come directly from
VignetteEffect();
std::string output_fragment_shader();
+ virtual bool needs_srgb_primaries() const { return false; }
+
void set_uniforms(GLuint glsl_program_num, const std::string &prefix, unsigned *sampler_num);
private: