feat: add render graph driven renderer architecture

Amp-Thread-ID: https://ampcode.com/threads/T-019f9d91-77c1-7206-a60f-ed6554ce92ab

Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
This commit is contained in:
Amp
2026-07-27 02:53:44 +00:00
co-authored by heaust
parent 8a8369706b
commit d4e8634f67
290 changed files with 48804 additions and 1995 deletions
+15
View File
@@ -0,0 +1,15 @@
import type { FxNodeDefinition } from "@lib/composition/index.js";
export const frameNode = [
"fxnode.common.frame",
{
version: 1,
title: "Frame",
behavior: "frame",
style: "common",
parameters: {},
sockets: {},
ui: [],
muteBypass: [],
migrations: [],
},
] as const satisfies readonly [string, FxNodeDefinition];
@@ -0,0 +1,42 @@
import type { FxNodeDefinition } from "@lib/composition/index.js";
export const groupInputNode = [
"fxnode.common.group-input",
{
version: 1,
title: "Group Input",
behavior: "standard",
style: "input",
parameters: {
interfaceName: {
type: "string",
default: {
kind: "string",
value: "Socket",
},
},
},
sockets: {
output: {
title: "Interface",
direction: "output",
type: "any",
maxIncomingLinks: 0,
visible: true,
value: null,
showValue: false,
},
},
ui: [
{
kind: "parameter",
parameter: "interfaceName",
},
{
kind: "socket",
socket: "output",
},
],
muteBypass: [],
migrations: [],
},
] as const satisfies readonly [string, FxNodeDefinition];
@@ -0,0 +1,42 @@
import type { FxNodeDefinition } from "@lib/composition/index.js";
export const groupOutputNode = [
"fxnode.common.group-output",
{
version: 1,
title: "Group Output",
behavior: "standard",
style: "output",
parameters: {
interfaceName: {
type: "string",
default: {
kind: "string",
value: "Socket",
},
},
},
sockets: {
input: {
title: "Interface",
direction: "input",
type: "any",
maxIncomingLinks: 9007199254740991,
visible: true,
value: null,
showValue: false,
},
},
ui: [
{
kind: "parameter",
parameter: "interfaceName",
},
{
kind: "socket",
socket: "input",
},
],
muteBypass: [],
migrations: [],
},
] as const satisfies readonly [string, FxNodeDefinition];
+43
View File
@@ -0,0 +1,43 @@
import type { FxNodeDefinition } from "@lib/composition/index.js";
export const rerouteNode = [
"fxnode.common.reroute",
{
version: 1,
title: "Reroute",
behavior: "reroute",
style: "common",
parameters: {},
sockets: {
input: {
title: "Input",
direction: "input",
type: "any",
maxIncomingLinks: 1,
visible: true,
value: null,
showValue: false,
},
output: {
title: "Output",
direction: "output",
type: "any",
maxIncomingLinks: 0,
visible: true,
value: null,
showValue: false,
},
},
ui: [
{
kind: "socket",
socket: "input",
},
{
kind: "socket",
socket: "output",
},
],
muteBypass: [["input", "output"]],
migrations: [],
},
] as const satisfies readonly [string, FxNodeDefinition];