+ void construct_glsl_programs(Node *output);
+
+ // Output the current graph to the given file in a Graphviz-compatible format;
+ // only useful for debugging.
+ void output_dot(const char *filename);
+
+ // Some of the graph algorithms assume that the nodes array is sorted
+ // topologically (inputs are always before outputs), but some operations
+ // (like graph rewriting) can change that. This function restores that order.
+ void sort_nodes_topologically();
+ void topological_sort_visit_node(Node *node, std::set<Node *> *visited_nodes, std::vector<Node *> *sorted_list);
+
+ // Used during finalize().
+ void propagate_gamma_and_color_space();
+ Node *find_output_node();