-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix GH-41226 by suppressing path adjustment when not actually drawing a border #46239
Conversation
@knappam Can you link the issue and make the title be descriptive of what your change is? |
done, thanks! |
@jorge-cab has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
mInnerClipTempRectForBorderRadius.left - pathAdjustment; | ||
mInnerClipTempRectForBorderRadius.top - pathAdjustment; | ||
mInnerClipTempRectForBorderRadius.right + pathAdjustment; | ||
mInnerClipTempRectForBorderRadius.bottom + pathAdjustment; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
,
instead of ;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
When not drawing a border, the mGapBetweenPaths adjustment can create noticable pixelation when drawing curves through a low number of pixels. This is noticable mostly on buttons and such on low-dpi devices. This fix only applies the fix if clipping for the border radius is done.
@jorge-cab has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@jorge-cab merged this pull request in 8501b63. |
This pull request was successfully merged by @knappam in 8501b63 When will my fix make it into a release? | How to file a pick request? |
… a border (#46239) Summary: When not drawing a border, the mGapBetweenPaths adjustment can create noticable pixelation when drawing curves through a low number of pixels. This is noticable mostly on buttons and such on low-dpi devices. This fix only applies the fix if clipping for the border radius is done. When drawing small radius rounded backgrounds (e.g. to draw a circle or button) we see visible pixelation (see [GH-41226](#41226)) This is particularly noticable on low DPI devices. ## Changelog: [ANDROID] [FIXED] - Don't use mGapBetweenPaths if not drawing a border Pull Request resolved: #46239 Test Plan: Built an android app that directly uses CSSBackgroundDrawable to draw a background and verified repro of this issue. ![pre-fix](https://github.com/user-attachments/assets/e56a41b1-60f6-4953-9e91-b95a3380f2d7) Then modified the code according to this PR and verified that anti-aliasing is appropriately applied ![fix](https://github.com/user-attachments/assets/b6b1aecf-a713-4e0a-9759-82c2dd862991) Reviewed By: NickGerleman Differential Revision: D61925281 Pulled By: jorge-cab fbshipit-source-id: 93014629d031bd0d716cd3bb11e2c294dedad639
When not drawing a border, the mGapBetweenPaths adjustment can create noticable pixelation when drawing curves through a low number of pixels. This is noticable mostly on buttons and such on low-dpi devices. This fix only applies the fix if clipping for the border radius is done.
Summary:
When drawing small radius rounded backgrounds (e.g. to draw a circle or button) we see visible pixelation (see GH-41226) This is particularly noticable on low DPI devices.
Changelog:
[ANDROID] [FIXED] - Don't use mGapBetweenPaths if not drawing a border
Test Plan:
Built an android app that directly uses CSSBackgroundDrawable to draw a background and verified repro of this issue.
Then modified the code according to this PR and verified that anti-aliasing is appropriately applied