perf(renderer): draw checkerboard with shader

This commit is contained in:
syntaxbullet
2026-07-04 15:43:50 +02:00
parent ef0ce15bb5
commit a030f2065a
4 changed files with 283 additions and 24 deletions

View File

@@ -1,13 +1,13 @@
import type { Artboard } from "@core/artboard";
import type { ViewportState } from "@editor/state";
import { renderCheckerboard } from "./checkerboard";
import type { CheckerboardRenderer } from "./checkerboard";
import { documentRectToScreenRect } from "./screen-rect";
import type { WebGlRendererContext } from "./types";
export function renderArtboard(context: WebGlRendererContext, artboard: Artboard, viewport: ViewportState) {
export function renderArtboard(context: WebGlRendererContext, artboard: Artboard, viewport: ViewportState, checkerboardRenderer: CheckerboardRenderer) {
const rect = documentRectToScreenRect(context.canvas, artboard.bounds, viewport);
if (artboard.backgroundColor === "transparent") {
renderCheckerboard(context, rect, Math.max(4, Math.round(12 * viewport.zoom)));
checkerboardRenderer.render(rect, Math.max(4, Math.round(12 * viewport.zoom)));
}
}