#pragma once
#include <vector>
#include "gfx/dag_types.h"

namespace fn::gfx {

// Renders the visual node editor (imgui-node-editor) inside the current ImGui::Begin.
// Modifies pipeline in-place: add/remove nodes, manage edges (source_ids).
// Returns true if TOPOLOGY changed (nodes or edges added/removed).
// Does not return true for position moves or slider changes.
// Call once per frame. Maintains its own editor context (static singleton).
bool dag_node_editor(std::vector<DagStep>& pipeline);

// Release editor resources. Call on shutdown.
void dag_node_editor_destroy();

} // namespace fn::gfx
