+ // Determine the preferred output size of a given phase.
+ // Requires that all input phases (if any) already have output sizes set.
+ void find_output_size(Phase *phase);
+
+ void find_all_nonlinear_inputs(Node *effect,
+ std::vector<Node *> *nonlinear_inputs,
+ std::vector<Node *> *intermediates);
+ Node *normalize_to_linear_gamma(Node *input);
+ Node *normalize_to_srgb(Node *input);
+
+ // Create a GLSL program computing the given effects in order.
+ Phase *compile_glsl_program(const std::vector<Node *> &inputs,
+ const std::vector<Node *> &effects);