Aus #62 („Not in this step: … a preview sprite in the tab …“).
Befund
Der Shader-Tab (src/editor/shader/ShaderEditor.ts) zeigt nur den Graphen. Wie der Shader aussieht, sieht man erst an einem platzierten Sprite in der Szene.
Animation- und Particles-Tab haben längst eine Vorschau neben dem Graphen (#86, #99).
Zu bauen (Vorschlag)
Vorschau rechts neben dem Graphen hinter einem Splitter, wie im Particles-Tab.
Gezeigt wird ein wählbares Sprite (Texture-Auswahl in der Kopfzeile, Vorgabe: ein Testbild), mit den Parametern des Shaders als Regler.
Shader-Zeit läuft in der Vorschau, mit Hold/Run wie bei Particles.
Tests: Vorschau folgt einer Graph-Änderung; Pixelwert an einem bekannten Effekt.
Offen (mit Vorschlag)
Was ist das Testbild? Vorschlag: ein eingebautes Farbverlauf-Schachbrett mit Alpha-Rand, daran sieht man Farbe, UV und Transparenz.
Aus #62 („Not in this step: … a preview sprite in the tab …“).
## Befund
- Der Shader-Tab (`src/editor/shader/ShaderEditor.ts`) zeigt nur den Graphen. Wie der Shader aussieht, sieht man erst an einem platzierten Sprite in der Szene.
- Animation- und Particles-Tab haben längst eine Vorschau neben dem Graphen (#86, #99).
## Zu bauen (Vorschlag)
- Vorschau rechts neben dem Graphen hinter einem Splitter, wie im Particles-Tab.
- Gezeigt wird ein wählbares Sprite (Texture-Auswahl in der Kopfzeile, Vorgabe: ein Testbild), mit den Parametern des Shaders als Regler.
- Shader-Zeit läuft in der Vorschau, mit Hold/Run wie bei Particles.
- Tests: Vorschau folgt einer Graph-Änderung; Pixelwert an einem bekannten Effekt.
## Offen (mit Vorschlag)
1. **Was ist das Testbild?** Vorschlag: ein eingebautes Farbverlauf-Schachbrett mit Alpha-Rand, daran sieht man Farbe, UV und Transparenz.
meleki
added the new label 2026-09-19 11:41:52 +02:00
Umgesetzt in 73a7147, Wiki 41b1532 (Seite Shaders, Abschnitt The preview).
Die Vorschau
Rechts neben dem Graphen steht jetzt ein Vorschau-Panel mit ziehbarem Splitter, wie im Particles-Tab.
Das Bild folgt der letzten Auswahl mit Bild, ohne Picker (wie oben vorgeschlagen): ein platziertes Sprite samt Overrides, Größe und Farbe, ein Sprite-Asset, eine Textur oder ein Frame. Ein Klick auf den Shader, einen Node, ein Behavior oder eine Szene lässt das Bild stehen. Unter den Knöpfen steht, welches Bild gerade gezeigt wird.
Testbild: Ohne so eine Auswahl, oder wenn das Bild gelöscht ist, kommt ein eingebautes 64-px-Testbild. Die Farbe verläuft mit u und v, ein Schachbrett zeigt, wo eine UV landet, und der Rand blendet für Alpha-Effekte aus.
Ein Regler pro Property. Die Regler gehören nur der Vorschau und schreiben nie ins Projekt. Sie starten bei den Werten des Sprites, wenn es diesen Shader trägt, sonst beim Default.
Eigene Uhr: Hold/Restart sind nur aktiv, wenn ein Time-Node im Graphen hängt.
Der Aufbau Graph | Splitter | Panel ist als PreviewSplit aus dem Particles-Tab herausgezogen, beide Tabs nutzen ihn.
Bewusst nicht gebaut: Ein nine-sliced Frame wird ungeschnitten gezeigt (steht im Wiki).
Funde unterwegs
Änderten sich die Properties, während der Tab verborgen war, blieb die Reglerzeile auf wenige Pixel zusammengequetscht. Behoben, der Regler-Check in 28n hält es fest.
Das Graph-Canvas ist schmaler geworden (385 px bei 1280 px Fensterbreite, wie im Particles-Tab). Block 28b klickt jetzt relativ zur gemessenen Breite statt fest bei x+420.
11 neue Unit-Tests (tests/editor/shader-preview.test.ts), 7 neue e2e-Checks (Block 28n).
Gegenproben greifen: Startwerte ohne Sprite → 1 Unit-Test fällt, Vorschau ohne Auswahl → 2 e2e-Checks fallen.
Check-Summe 1209 ist gerechnet (1202 + 7), gemessen wird sie im CI-Lauf.
Umgesetzt in 73a7147, Wiki 41b1532 (Seite *Shaders*, Abschnitt *The preview*).
## Die Vorschau
Rechts neben dem Graphen steht jetzt ein Vorschau-Panel mit ziehbarem Splitter, wie im Particles-Tab.
- **Das Bild folgt der letzten Auswahl mit Bild**, ohne Picker (wie oben vorgeschlagen): ein platziertes Sprite samt Overrides, Größe und Farbe, ein Sprite-Asset, eine Textur oder ein Frame. Ein Klick auf den Shader, einen Node, ein Behavior oder eine Szene lässt das Bild stehen. Unter den Knöpfen steht, welches Bild gerade gezeigt wird.
- **Testbild:** Ohne so eine Auswahl, oder wenn das Bild gelöscht ist, kommt ein eingebautes 64-px-Testbild. Die Farbe verläuft mit u und v, ein Schachbrett zeigt, wo eine UV landet, und der Rand blendet für Alpha-Effekte aus.
- **Ein Regler pro Property.** Die Regler gehören nur der Vorschau und schreiben nie ins Projekt. Sie starten bei den Werten des Sprites, wenn es diesen Shader trägt, sonst beim Default.
- **Eigene Uhr:** Hold/Restart sind nur aktiv, wenn ein Time-Node im Graphen hängt.
- Der Aufbau Graph | Splitter | Panel ist als `PreviewSplit` aus dem Particles-Tab herausgezogen, beide Tabs nutzen ihn.
- **Bewusst nicht gebaut:** Ein nine-sliced Frame wird ungeschnitten gezeigt (steht im Wiki).
## Funde unterwegs
- Änderten sich die Properties, während der Tab verborgen war, blieb die Reglerzeile auf wenige Pixel zusammengequetscht. Behoben, der Regler-Check in 28n hält es fest.
- Das Graph-Canvas ist schmaler geworden (385 px bei 1280 px Fensterbreite, wie im Particles-Tab). Block 28b klickt jetzt relativ zur gemessenen Breite statt fest bei x+420.
## Tests
```
./check.sh → 132 Files, 1952 Tests, CHECK EXIT 0 (vorher 131 / 1941)
npm run build → BUILD EXIT 0
GM_STEPS=28,31 (frisch) → ALL PASSED – 105 checks
```
- 11 neue Unit-Tests (`tests/editor/shader-preview.test.ts`), 7 neue e2e-Checks (Block 28n).
- Gegenproben greifen: Startwerte ohne Sprite → 1 Unit-Test fällt, Vorschau ohne Auswahl → 2 e2e-Checks fallen.
- Check-Summe **1209** ist gerechnet (1202 + 7), gemessen wird sie im CI-Lauf.
Nachtrag: Anzeigefehler in der Vorschau behoben (7063c8d).
Symptom: Wenn man Min, Max oder Default einer Property geändert hat, fehlte in der Vorschau der Regler, und nur das Label war zu sehen. Erst eine Größenänderung der Vorschau hat ihn wieder gezeigt.
Ursache:Widget.resize legt nur dann neu aus, wenn sich die Größe ändert. Bei so einer Änderung bleibt die Zeilenzahl gleich, der Zeilen-Stack behält also seine Höhe, und die neu gebauten Zeilen blieben bei 0 x 0.
Fix:syncParams legt nach dem Umbau jetzt auch den Zeilen-Stack selbst neu aus (src/editor/shader/ShaderEditor.ts).
Tests:
Neuer e2e-Check in 28n: Ein neues Max baut den Regler mit 136 x 24, ein Klick ans rechte Ende setzt level auf 2. Gegen den alten Build rot (w 0, h 0).
GM_STEPS=28,31 frisch: ALL PASSED, 106 Checks (vorher 105)
./check.sh: 132 Files, 1952 Tests, grün
Check-Summe 1210 in README und Wiki (1d530fe), gerechnet, gemessen wird sie in CI.
Nachtrag: Anzeigefehler in der Vorschau behoben (7063c8d).
**Symptom:** Wenn man Min, Max oder Default einer Property geändert hat, fehlte in der Vorschau der Regler, und nur das Label war zu sehen. Erst eine Größenänderung der Vorschau hat ihn wieder gezeigt.
**Ursache:** `Widget.resize` legt nur dann neu aus, wenn sich die Größe ändert. Bei so einer Änderung bleibt die Zeilenzahl gleich, der Zeilen-Stack behält also seine Höhe, und die neu gebauten Zeilen blieben bei 0 x 0.
**Fix:** `syncParams` legt nach dem Umbau jetzt auch den Zeilen-Stack selbst neu aus (`src/editor/shader/ShaderEditor.ts`).
**Tests:**
- Neuer e2e-Check in 28n: Ein neues Max baut den Regler mit 136 x 24, ein Klick ans rechte Ende setzt `level` auf 2. Gegen den alten Build rot (w 0, h 0).
- `GM_STEPS=28,31` frisch: ALL PASSED, 106 Checks (vorher 105)
- `./check.sh`: 132 Files, 1952 Tests, grün
- Check-Summe 1210 in README und Wiki (`1d530fe`), gerechnet, gemessen wird sie in CI.
admin
moved this to Done in Development on 2026-09-21 09:29:08 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Aus #62 („Not in this step: … a preview sprite in the tab …“).
Befund
src/editor/shader/ShaderEditor.ts) zeigt nur den Graphen. Wie der Shader aussieht, sieht man erst an einem platzierten Sprite in der Szene.Zu bauen (Vorschlag)
Offen (mit Vorschlag)
Testbild: wie wäre es nicht sinnvoller, wenn man einfach das (zuletzt) selektierte Sprite/Texture darstellt?
Umgesetzt in
73a7147, Wiki 41b1532 (Seite Shaders, Abschnitt The preview).Die Vorschau
Rechts neben dem Graphen steht jetzt ein Vorschau-Panel mit ziehbarem Splitter, wie im Particles-Tab.
PreviewSplitaus dem Particles-Tab herausgezogen, beide Tabs nutzen ihn.Funde unterwegs
Tests
tests/editor/shader-preview.test.ts), 7 neue e2e-Checks (Block 28n).Nachtrag: Anzeigefehler in der Vorschau behoben (
7063c8d).Symptom: Wenn man Min, Max oder Default einer Property geändert hat, fehlte in der Vorschau der Regler, und nur das Label war zu sehen. Erst eine Größenänderung der Vorschau hat ihn wieder gezeigt.
Ursache:
Widget.resizelegt nur dann neu aus, wenn sich die Größe ändert. Bei so einer Änderung bleibt die Zeilenzahl gleich, der Zeilen-Stack behält also seine Höhe, und die neu gebauten Zeilen blieben bei 0 x 0.Fix:
syncParamslegt nach dem Umbau jetzt auch den Zeilen-Stack selbst neu aus (src/editor/shader/ShaderEditor.ts).Tests:
levelauf 2. Gegen den alten Build rot (w 0, h 0).GM_STEPS=28,31frisch: ALL PASSED, 106 Checks (vorher 105)./check.sh: 132 Files, 1952 Tests, grün1d530fe), gerechnet, gemessen wird sie in CI.