// User API:
// input, effects, output, finalize need to come in that specific order.
- Input *add_input(const ImageFormat &format);
+ // EffectChain takes ownership of the given input.
+ // input is returned back for convenience.
+ Input *add_input(Input *input);
// EffectChain takes ownership of the given effect.
// effect is returned back for convenience.
std::vector<Effect *> effects; // In order.
};
- void set_use_srgb_texture_format(Effect *effect);
+ void find_all_nonlinear_inputs(Effect *effect,
+ std::vector<Input *> *nonlinear_inputs,
+ std::vector<Effect *> *intermediates);
Effect *normalize_to_linear_gamma(Effect *input);
Effect *normalize_to_srgb(Effect *input);