summaryrefslogtreecommitdiff
path: root/apps/web/src/services/renderer/effect-preview.ts
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-29 00:37:56 +0200
committerMaze Winther <mazewinther@gmail.com>2026-05-02 03:27:23 +0200
commita9b9cf6bf50f08723896659634f2e6afc17bcd42 (patch)
tree9175b49ff21f4326872ac9e541d2765cc7994ebc /apps/web/src/services/renderer/effect-preview.ts
parentd6622dc6b3523a5658cd512b44f15f7a66fd540c (diff)
downloadopencut-a9b9cf6bf50f08723896659634f2e6afc17bcd42.tar.gz
chore: switch from biome to eslint + prettier; fix ton of lint issues
Diffstat (limited to 'apps/web/src/services/renderer/effect-preview.ts')
-rw-r--r--apps/web/src/services/renderer/effect-preview.ts25
1 files changed, 9 insertions, 16 deletions
diff --git a/apps/web/src/services/renderer/effect-preview.ts b/apps/web/src/services/renderer/effect-preview.ts
index c4cacde0..cbfb1a31 100644
--- a/apps/web/src/services/renderer/effect-preview.ts
+++ b/apps/web/src/services/renderer/effect-preview.ts
@@ -1,4 +1,4 @@
-import { createOffscreenCanvas } from "./canvas-utils";
+import { createCanvasSurface } from "./canvas-utils";
import { effectsRegistry, resolveEffectPasses } from "@/effects";
import { buildDefaultParamValues } from "@/params/registry";
import type { ParamValues } from "@/params";
@@ -8,7 +8,7 @@ const PREVIEW_SIZE = 160;
const PREVIEW_IMAGE_PATH = "/effects/preview.jpg";
class EffectPreviewService {
- private testSourceCanvas: OffscreenCanvas | HTMLCanvasElement | null = null;
+ private testSourceCanvas: OffscreenCanvas | null = null;
private previewImageElement: HTMLImageElement | null = null;
private onReadyCallbacks = new Set<() => void>();
@@ -98,7 +98,7 @@ class EffectPreviewService {
}: {
width: number;
height: number;
- }): OffscreenCanvas | HTMLCanvasElement | null {
+ }): OffscreenCanvas | null {
const isImageReady =
this.previewImageElement?.complete &&
(this.previewImageElement.naturalWidth ?? 0) > 0;
@@ -106,15 +106,8 @@ class EffectPreviewService {
return null;
}
- const canvas = createOffscreenCanvas({ width, height });
- const ctx = canvas.getContext("2d") as
- | CanvasRenderingContext2D
- | OffscreenCanvasRenderingContext2D
- | null;
- if (!ctx) {
- throw new Error("failed to get 2d context for test source");
- }
- ctx.drawImage(this.previewImageElement, 0, 0, width, height);
+ const { canvas, context } = createCanvasSurface({ width, height });
+ context.drawImage(this.previewImageElement, 0, 0, width, height);
return canvas;
}
@@ -124,7 +117,7 @@ class EffectPreviewService {
}: {
width: number;
height: number;
- }): CanvasImageSource | null {
+ }): OffscreenCanvas | null {
if (
!this.testSourceCanvas ||
this.testSourceCanvas.width !== width ||
@@ -141,17 +134,17 @@ class EffectPreviewService {
height,
passes,
}: {
- source: CanvasImageSource;
+ source: OffscreenCanvas;
width: number;
height: number;
passes: ReturnType<typeof resolveEffectPasses>;
- }): OffscreenCanvas | HTMLCanvasElement {
+ }): OffscreenCanvas {
return gpuRenderer.applyEffect({
source,
width,
height,
passes,
- }) as OffscreenCanvas | HTMLCanvasElement;
+ });
}
}