fix(graphics-2d): the stage never resizes when no viewport is given

Offen Anfängerfreundlich
#503 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
82/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
typescript
Bereich
frontend

Rechercherichtung

Lies modules/graphics-2d/src/graphics-2d.library.ts im Bereich der Zeilen 37–49 und vergleiche die optionale Viewport-Behandlung mit dem ResizeObserver-Fallback in graphics-3d (_followContainer). Prüfe __clear auf die Bereinigung des Observers und ziehe docs/docs/graphics-2d/index.mdx im Bereich von Zeile 49 zum dokumentierten Verhalten heran. Fertig ist die Arbeit, wenn sich die Stage bei nicht angegebenem Viewport zusammen mit ihrem Container vergrößert und verkleinert und der Observer während der Bereinigung getrennt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug modules:graphics-2d
Which package is this bug report for?

graphics-2d

Issue description

InitContext.viewport is optional. Without it, the stage keeps its first size, although the docs say it follows its size changes. graphics-3d falls back to a ResizeObserver (_followContainer).

Where:

Evidence:

width: ctx.container.offsetWidth,
height: ctx.container.offsetHeight,
...
if (ctx.viewport) { ... }

Suggested fix: Use the same ResizeObserver fallback and disconnect it in __clear.

Found during a code audit of main at be72076.

Code sample

No response

Versions
  • Engine main at be72076
  • pnpm 12.0.0, Node.js 26, Bun 1.3.14
Issue priority

Low (slightly annoying)

I have tested this issue on a development release

be72076

Vorherrschende Sprache
TypeScript
Sterne
7
Forks
2
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
17

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NanoForge-dev/Engine

Alle Issues in NanoForge-dev/Engine

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.