You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(ui): render the Phaser canvas at physical pixels on hi-DPI displays
Phaser 4's ScaleManager never consults devicePixelRatio: in RESIZE mode
the canvas backing store equals the CSS size, so on Retina displays the
whole village — sprite art and every label — rendered at half resolution
and was blur-upscaled by the browser ('sgranato').
Switch to Scale.NONE and size the framebuffer at cssSize * dpr with
scale.zoom = 1/dpr keeping the CSS size logical (input mapping stays
correct because displayScale derives from the canvas bounding rect).
PhaserGame drives resizes via ResizeObserver plus a matchMedia watcher
for DPR-only changes. Camera zoom values now carry the dpr factor, so
VillageScene's max-zoom cap and wheel sensitivity scale with it, and
BootScene lays out in logical coordinates with a dpr-zoomed camera.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments