fix(CAD-13): double rendering - legacy canvas skips element rendering when pixi renderer is active (grid/background stay), defensive fallback if pixi fails

This commit is contained in:
Agent Zero
2026-09-16 09:55:59 +02:00
parent f3a8b9e346
commit af9f53c61f
3 changed files with 86 additions and 0 deletions
+11
View File
@@ -55,6 +55,8 @@ export class RenderEngine {
/** src des zuletzt erfolgreich geladenen Hintergrundbilds. */
private bgSrcLoaded = '';
private dpr = 1;
/** CAD-13-fix: true = Legacy-Canvas zeichnet KEINE Elemente (Pixi-Overlay zeichnet sie). Grid/Hintergrund bleiben. */
skipElementRendering = false;
constructor(
canvas: HTMLCanvasElement,
@@ -161,6 +163,15 @@ export class RenderEngine {
if (this.options.showGrid) this.drawGrid(w, h);
if (this.options.backgroundSrc) this.drawBackground();
this.drawRuler(w, h);
// CAD-13-fix: Wenn Pixi-Renderer aktiv ist (skipElementRendering=true),
// zeichnet das Legacy-Canvas KEINE Elemente mehr (sonst doppelt) —
// nur Grid/Hintergrund/Lineal bleiben hier.
if (this.skipElementRendering) {
this.ctx.restore();
return;
}
const viewport = this.zoomPan.getViewport();
const visibleElements = this.spatialIndex.search({
minX: viewport.minX, minY: viewport.minY,