- if (effect->needs_srgb_primaries() && current_color_space != COLORSPACE_sRGB) {
- input = normalize_to_srgb(input);
+ std::vector<Effect *> normalized_inputs = inputs;
+ for (unsigned i = 0; i < normalized_inputs.size(); ++i) {
+ if (effect->needs_linear_light() && output_gamma_curve[normalized_inputs[i]] != GAMMA_LINEAR) {
+ normalized_inputs[i] = normalize_to_linear_gamma(normalized_inputs[i]);
+ }
+ if (effect->needs_srgb_primaries() && output_color_space[normalized_inputs[i]] != COLORSPACE_sRGB) {
+ normalized_inputs[i] = normalize_to_srgb(normalized_inputs[i]);
+ }