2b55a4823d
- cpp/vendor/imgui-node-editor: vendorized thedmd/imgui-node-editor v0.9.4 - cpp/functions/gfx/dag_node_editor: new visual pipeline editor replacing dag_panel - DagStep: source_ids[4] + editor_pos + editor_uid (multi-input support) - DagNodeDef: num_inputs explicit; circle reclassified as Op - dag_compile: N inputs per node, topological ordering preserved - main: use node editor; destroy on shutdown - patch imgui_extra_math.inl: guard operator*(float, ImVec2) for imgui >= 18955 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | params | output | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dag_node_editor | function | cpp | gfx | 1.0.0 | impure | bool dag_node_editor(std::vector<DagStep>& pipeline) | Renderiza el node editor visual (imgui-node-editor) para el DAG de shaders. Modifica el pipeline in-place: añade/borra nodos, gestiona aristas (source_ids). Devuelve true si la topologia cambio. |
|
false | error_go_core |
|
false | cpp/functions/gfx/dag_node_editor.cpp |
|
true si la topologia cambio (nodos o aristas añadidos/quitados); false en caso contrario |
Notas
Sustituye a dag_panel como UI del pipeline. Usa ax::NodeEditor (thedmd/imgui-node-editor v0.9.4) con contexto singleton estático.
Codificacion de IDs:
- Node id =
editor_uiddel step - Output pin =
(uid << 8) | 0 - Input pin =
(uid << 8) | (slot + 1) - Link id =
(from_uid << 20) | (to_uid << 8) | slot
Aplica topological sort (Kahn) tras cada cambio de topologia. Rechaza ciclos en BeginCreate.
Multi-source: cada nodo declara num_inputs (0-4). Los slots de source_ids[] se mapean a los inputs del shader GLSL (a, b, c, d).
Dependencia
Requiere imgui_node_editor static library linkeada (cpp/vendor/imgui-node-editor).