Skip to content

Round after applying device pixel ratio in resize() - #4

Merged
Mistium merged 1 commit into
developfrom
round-resize-dpr
Sep 25, 2026
Merged

Mistium merged 1 commit into
developfrom
round-resize-dpr

Conversation

@Mistium

@Mistium Mistium commented Sep 24, 2026

Copy link
Copy Markdown
Member

Cherry-pick of TurboWarp commit 4a71110.

With fractional display scaling (125% or 150%, common on low-end Windows laptops), pixelsWide * pixelRatio is not an integer. The canvas floors it when it is set, so canvas.width !== newWidth stayed true on every resize() call. Each call then reallocated the WebGL backbuffer, updated render quality and overlays, and drew an extra frame. Rounding makes the check match, so repeated resizes at the same size do nothing.

Nothing visible changes.

- Canvas setters will implicitly floor. If float math gives us something like 99.9999 we actually want 100, but it would be using 99.
- If pixel ratio scaling results in a decimal, the old code would fail the if check on every call because the getters would be floored.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants