eval::Graph

The edit-time form of an expression program: input slots and output expressions.

Declared in src/libs/libeval/eval/Graph.hpp
Group eval

Detailed description

A caller declares input slots with declareInput() and output expressions with declareOutput(), in any order. compile() sorts the outputs by their dependencies, type-checks the whole program, and returns an immutable eval::Program, or the diagnostics that stopped it.

One Graph serves one editing session. It is move-only, and the Program it compiles does not refer back to it. Every backend shares one front end: the program's GLSL goes through glslang to SPIR-V, and the Backend only selects what runs that SPIR-V.

See also eval::Program, eval::evaluate().

In this section