2D-Engine-Parität: WASM-Pfad rendert deckungsgleich zum SVG-Referenzpfad

Sechs Lücken geschlossen: Text-Massstab vom Geometrie-Massstab entkoppelt
(set_text_scale, spiegelt SVG-Referenzskala); glyphon auf ColorMode::Web
(Text war linear-konvertiert zu dunkel); z-basierte Maler-Reihenfolge
(interleavte draw_sequence statt fills-vor-lines, Alt-Szenen unverändert);
CSS-Klassenfarben/-Opacities in toRenderScene gespiegelt (Türschwenk etc.);
greyed-Dimmung 0.3 auf allen Primitiven; Dämmschraffur am Modell-Ursprung
verankert (userSpaceOnUse), exakte Bézier-Wellenform statt Sinus und
kachelgekoppelte Strichbreite (widthScreen-Modus). Probe
scripts/probe-engine-parity.mjs vergleicht ?gl=0 gegen ?engine=wasm;
Rest-Diff nur AA/Glyphen-Rasterung. cargo 17/17, vitest 94/94, Builds grün.
This commit is contained in:
2026-07-03 08:17:01 +02:00
parent 98994c96aa
commit 23410f9b9e
11 changed files with 470 additions and 156 deletions
+5
View File
@@ -32,10 +32,12 @@ pub fn demo_scene() -> Scene {
FillPolygon {
pts: l.clone(),
color: wall_grey,
z: 0,
},
FillPolygon {
pts: room.clone(),
color: room_blue,
z: 2,
},
],
outlines: vec![
@@ -44,12 +46,14 @@ pub fn demo_scene() -> Scene {
color: ink,
width_mm: 0.35,
dash: None,
z: 1,
},
Outline {
pts: room,
color: ink,
width_mm: 0.18,
dash: None,
z: 3,
},
],
polylines: vec![],
@@ -60,6 +64,7 @@ pub fn demo_scene() -> Scene {
color: ink,
width_mm: 0.25,
dash: None,
z: 4,
}],
// Ein Raumstempel-artiger Text (echte Glyphen via Atlas), mittig im Raum.
texts: vec![Text {