diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-04-13 04:41:17 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-04-13 05:08:29 +0200 |
| commit | cad88ee4d1c9e06e7529b88ef5e5d3fdf3f89149 (patch) | |
| tree | 0bfc1fcb18b3da4969afa2836bb65e6a5e25d123 /apps/web/src/services/renderer/nodes/base-node.ts | |
| parent | 36efdf66e707c818b81009acf8a00630a0309ca1 (diff) | |
| download | opencut-cad88ee4d1c9e06e7529b88ef5e5d3fdf3f89149.tar.gz | |
refactor: rendering pipeline
Made-with: Cursor
Diffstat (limited to 'apps/web/src/services/renderer/nodes/base-node.ts')
| -rw-r--r-- | apps/web/src/services/renderer/nodes/base-node.ts | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/apps/web/src/services/renderer/nodes/base-node.ts b/apps/web/src/services/renderer/nodes/base-node.ts index 55bd055a..1d6fc0e4 100644 --- a/apps/web/src/services/renderer/nodes/base-node.ts +++ b/apps/web/src/services/renderer/nodes/base-node.ts @@ -1,35 +1,26 @@ -import type { CanvasRenderer } from "../canvas-renderer"; - export type BaseNodeParams = object | undefined; +export type AnyBaseNode = BaseNode<BaseNodeParams, unknown>; -export class BaseNode<Params extends BaseNodeParams = BaseNodeParams> { +export class BaseNode< + Params extends BaseNodeParams = BaseNodeParams, + Resolved = unknown, +> { params: Params; + resolved: Resolved | null = null; constructor(params?: Params) { this.params = params ?? ({} as Params); } - children: BaseNode[] = []; + children: AnyBaseNode[] = []; - add(child: BaseNode) { + add(child: AnyBaseNode) { this.children.push(child); return this; } - remove(child: BaseNode) { + remove(child: AnyBaseNode) { this.children = this.children.filter((c) => c !== child); return this; } - - async render({ - renderer, - time, - }: { - renderer: CanvasRenderer; - time: number; - }): Promise<void> { - for (const child of this.children) { - await child.render({ renderer, time }); - } - } } |
