• OctoMY API
  • OctoMY API Reference
  • C++ Classes
  • OctoMY
  • Graph
  • eval::Graph Class

    class eval::Graph

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

    Header: #include <Graph>

    Public Functions

    bool allowRecursion(bool on)

    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 and eval::evaluate().

    Member Function Documentation

    bool Graph::allowRecursion(bool on)

    `SUP-88` — an empty element list is a caller error, not an empty slot.

    A zero-length wide output would size to nothing in the flat buffer and silently overlap the next slot. `SUP-74` made a graph with NO outputs a legal empty program, and that is a different thing: an output that exists and carries no values has no meaning the ABI can express. Refused by returning the invalid handle, which is what every other declare verb returns for a request it cannot honour.