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:
@@ -16,18 +16,20 @@ static std::string make_id() {
|
||||
|
||||
static ImVec4 kind_color(DagKind kind) {
|
||||
switch (kind) {
|
||||
case DagKind::Gen: return ImVec4(0.25f, 0.55f, 0.90f, 1.0f);
|
||||
case DagKind::Op: return ImVec4(0.65f, 0.40f, 0.90f, 1.0f);
|
||||
case DagKind::Blend: return ImVec4(0.90f, 0.65f, 0.15f, 1.0f);
|
||||
case DagKind::Gen: return ImVec4(0.25f, 0.55f, 0.90f, 1.0f);
|
||||
case DagKind::Op: return ImVec4(0.65f, 0.40f, 0.90f, 1.0f);
|
||||
case DagKind::Blend: return ImVec4(0.90f, 0.65f, 0.15f, 1.0f);
|
||||
case DagKind::Output: return ImVec4(0.85f, 0.25f, 0.25f, 1.0f);
|
||||
}
|
||||
return ImVec4(1, 1, 1, 1);
|
||||
}
|
||||
|
||||
static const char* kind_label(DagKind kind) {
|
||||
switch (kind) {
|
||||
case DagKind::Gen: return "Gen";
|
||||
case DagKind::Op: return "Op";
|
||||
case DagKind::Blend: return "Blend";
|
||||
case DagKind::Gen: return "Gen";
|
||||
case DagKind::Op: return "Op";
|
||||
case DagKind::Blend: return "Blend";
|
||||
case DagKind::Output: return "Output";
|
||||
}
|
||||
return "?";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user