feat(shaders_lab): Output node + Functions palette with drag-drop
- DagKind::Output (new enum): terminal sink; compiler wires fragColor to its source_ids[0] - dag_catalog: "output" node (1 input, red) - dag_compile: skips Output in node_<i> emission; final fragColor resolves from Output's connection - dag_node_editor: no more Add button; drops "DAG_NODE_TYPE" payloads at mouse canvas position; Output cannot be deleted; Output has no output pin - dag_palette (new fn): Functions window with grouped, draggable node cards - main.cpp: "Functions" window added; ensure_dag_default seeds plasma + connected Output
This commit is contained in:
@@ -225,6 +225,21 @@ static const std::vector<DagNodeDef>& build_catalog() {
|
||||
v.push_back(std::move(n));
|
||||
}
|
||||
|
||||
// ── Output (sink — drives fragColor) ─────────────────────────
|
||||
{
|
||||
DagNodeDef n;
|
||||
n.name = "output";
|
||||
n.label = "Output";
|
||||
n.desc = "canvas DAG output";
|
||||
n.kind = DagKind::Output;
|
||||
n.num_inputs = 1;
|
||||
n.param_names = {"", "", "", ""};
|
||||
n.param_defaults = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
n.controls = {};
|
||||
n.body_glsl = [](int) -> std::string { return ""; };
|
||||
v.push_back(std::move(n));
|
||||
}
|
||||
|
||||
return v;
|
||||
}();
|
||||
return catalog;
|
||||
|
||||
Reference in New Issue
Block a user