fix: the canvas glides on whole device pixels - #40
Merged
Conversation
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.
Thin strokes shimmered while the canvas glided and could stay soft after it stopped. The track moves by
translateX, and the offset was rounded to whole CSS pixels; at a fractional display scale such as 1.67× a whole CSS pixel is not a whole device pixel, so two frames in three landed the composited layers between device pixels and the compositor resampled them. The offset is now rounded in device pixels (snapToDevicePixels, read fromdevicePixelRatioeach frame), which at 1× and 2× is exactly what it was. Screencast of the same six-notch fling, variance of the Laplacian over the pane area: moving frames averaged 128 before and 143 after; the frame at rest went from 127 to 148. The self-check reads the fractional track offset accordingly.Generated with Claude Code