Repository navigation
fix: Web-Canvas mit ganzzahligen Pixelmaßen – Füllungen verschwanden bei gebrochener Breite - #368
Merged
Merged
Conversation
…ebrochener Breite Das canvas-Attribut schneidet Nachkommastellen ab, getImageData und floodFillPixels rechneten aber mit der übergebenen (gebrochenen) Breite. Bei z. B. screenWidth * 0.44 = 184,8 stimmte die Zeilenadressierung nicht mehr und Fills verschwanden still (auf dem Ergebnis-Screen und auf Geräten mit gebrochener Fensterbreite auch in der Zeichenphase). width/height werden jetzt am Komponentenanfang abgerundet. Regressionstest prüft ganzzahlige Canvas-Maße und getImageData-Argumente; im Browser bei 420 px Viewport verifiziert (vorher keine Fills im Ergebnis, jetzt sichtbar). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017fxbsNALrmwMj7LGMDPLw2
🔀 Mergeability-Report✅ Konfliktfrei mergebar ( CI-Checks: ✅ keine fehlgeschlagenen Checks ⏳ 🔑 Keystore & Credential Scan Merge-Checkliste
Kostenlos generiert von reusable-mergeability.yml · keine API-Kosten · review-gate: |
Konflikt nur in components/__tests__/DrawingCanvas.web.test.tsx (beide PRs hängen neue describe-Blöcke am Dateiende an): beide Testgruppen behalten. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017fxbsNALrmwMj7LGMDPLw2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Beschreibung
Auf Web verschwanden Füllungen, wenn die Breite oder Höhe der Zeichenfläche nicht ganzzahlig war.
Ursache: Das
canvas-Attribut schneidet Nachkommastellen ab.getImageDataundfloodFillPixelsrechneten aber mit der übergebenen, gebrochenen Breite. Dadurch stimmte die Zeilenadressierung im Pixelpuffer nicht mehr, der Flood-Fill lief ins Leere und die Füllung fehlte ohne Fehlermeldung. Der Native-Code umgeht dasselbe Problem schon mitMath.floorincomputeNativeFillLayers.Wann das auftrat:
ResultPhase.imageSize = screenWidth * 0.44, z. B. 184,8 px bei 420 px BreitewindowWidth - 48. Auf Geräten mit gebrochener Fensterbreite (z. B. 411,43 px) sind Füllungen auf der Web-Version betroffen.Fix:
widthundheightwerden am Anfang vonDrawingCanvas.web.tsxabgerundet. Alles Abgeleitete (Canvas-Attribute, Pixelzugriff, Skalierung, Cache-Schlüssel) verwendet dieselben ganzzahligen Maße. Der sichtbare Unterschied ist weniger als 1 px.Art der Änderung
Cross-Platform Kompatibilität
Betrifft dieser PR plattformspezifischen Code? Ja, nur
DrawingCanvas.web.tsx. Native ist unverändert und hatte das Problem schon behoben.Testing Checklist
npm run test:ci: 460/460 grüngetImageData(0, 0, 184, 100)); schlägt gegen den alten Code fehlHinweis zur Reihenfolge
Der Komponenten-Code lässt sich mit #367 (Replay-Cache) konfliktfrei zusammenführen. Nur
components/__tests__/DrawingCanvas.web.test.tsxkollidiert, weil beide PRs am Dateiende neue Tests ergänzen. Ich löse das nach dem Merge des jeweils ersten PRs auf.Generated by Claude Code