diff options
Diffstat (limited to 'apps/web/src/services/renderer/nodes/image-node.ts')
| -rw-r--r-- | apps/web/src/services/renderer/nodes/image-node.ts | 37 |
1 files changed, 9 insertions, 28 deletions
diff --git a/apps/web/src/services/renderer/nodes/image-node.ts b/apps/web/src/services/renderer/nodes/image-node.ts index 7d74f511..d8c56803 100644 --- a/apps/web/src/services/renderer/nodes/image-node.ts +++ b/apps/web/src/services/renderer/nodes/image-node.ts @@ -1,5 +1,8 @@ -import type { CanvasRenderer } from "../canvas-renderer"; -import { VisualNode, type VisualNodeParams } from "./visual-node"; +import { + VisualNode, + type ResolvedVisualSourceNodeState, + type VisualNodeParams, +} from "./visual-node"; export interface ImageNodeParams extends VisualNodeParams { url: string; @@ -62,29 +65,7 @@ export function loadImageSource( return promise; } -export class ImageNode extends VisualNode<ImageNodeParams> { - private cachedSource: Promise<CachedImageSource>; - - constructor(params: ImageNodeParams) { - super(params); - this.cachedSource = loadImageSource(params.url, params.maxSourceSize); - } - - async render({ renderer, time }: { renderer: CanvasRenderer; time: number }) { - await super.render({ renderer, time }); - - if (!this.isInRange({ time })) { - return; - } - - const { source, width, height } = await this.cachedSource; - - this.renderVisual({ - renderer, - source, - sourceWidth: width || renderer.width, - sourceHeight: height || renderer.height, - timelineTime: time, - }); - } -} +export class ImageNode extends VisualNode< + ImageNodeParams, + ResolvedVisualSourceNodeState +> {} |
