-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[dart:ui] Add Path.addRSuperellipse
#166045
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
Conversation
It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging. If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix? Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group. |
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
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.
Rather than having two different recievers, I would do an RSE -> Path conversion during dispatching (always to a skia path).
You could also move the stroke conversion check there.
@jonahwilliams I've made the change and it looks much cleaner. PTAL, thanks! |
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.
Just a cursory inspection, but I didn't see anything wrong here. Sending review as just a comment review.
Is web UI dealt with? I'm guessing it was modified in the original RSE change?
Yeah I need to handle web_ui (which will probably be notified by the Linux analyze check anyway), but in general the Web is not supporting RSuperellipse for now and falls back to RRect. Edit: Web added. |
I've met an obstacle for this approach: the |
I don't think we should abandon this approach because of that test. @flar can you help adjust the test case? |
Oh, interesting. Is there a reason we encode the path into the DisplayList buffer rather than do that on dispatch? At some point in the future we may not need to generate the path and that state will depend on the backend so doing it in the DisplayList recording process would be premature. |
Actually we no longer need to diverge at the display list level, since I'm now able to convert an impeller path to a skia path at the |
The reason we should do this during recording and not dispatch is to avoid doing repeated work. Any work done during dispatch is repeated on each frame, whereas work done during recording is reused as long as the picture is stable. This optimization is the motivation for changes I'd like the make to DL for #155115 Another example is places where Impeller decides we need to convert a piece of geometry (like a RRect) to a Path. |
@jonahwilliams If we want to do such optimization, shouldn't we implement it to all shapes including all tessellation? |
No, because tessellation itself depends on the exact CTM which isn't known during recording. |
As a workaround for now, the drawRSE could contain a DlPath which will be an empty path for fills and a completed path for strokes at the cost of basically a shared_ptr (the only contents and the size of a DlPath object). |
Roll Flutter from a0b1b32 to 02f13c3 (37 revisions) flutter/flutter@a0b1b32...02f13c3 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 07496eb to 4a36dc6 (3 revisions) (flutter/flutter#166542) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from b67e53719e78 to 5f65df75febd (2 revisions) (flutter/flutter#166538) 2025-04-03 magder@google.com Update docs to debug the Android embedder (flutter/flutter#166170) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 72562ca93bb5 to d174ec16c3ea (1 revision) (flutter/flutter#166525) 2025-04-03 matej.knopp@gmail.com [macOS] Implement merged UI and platform thread (flutter/flutter#162883) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from f91412f5d89d to b67e53719e78 (1 revision) (flutter/flutter#166527) 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 125c117 to 07496eb (31 revisions) (flutter/flutter#166457) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 2be12bc2668b to f91412f5d89d (2 revisions) (flutter/flutter#166517) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a1a13cc3a91 to 72562ca93bb5 (2 revisions) (flutter/flutter#166514) 2025-04-03 dacoharkes@google.com [native_assets] Roll dependencies (flutter/flutter#166282) 2025-04-03 bruno.leroux@gmail.com Fix read only TextField focus traversal on macOS (flutter/flutter#166056) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from c106d7831592 to 2be12bc2668b (1 revision) (flutter/flutter#166509) 2025-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from v7PGvypiiWLO8PbsZ... to vYisSsIgqw0mqFRVJ... (flutter/flutter#166508) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from b8b4076b1237 to 2a1a13cc3a91 (1 revision) (flutter/flutter#166504) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 75a0ec473181 to c106d7831592 (1 revision) (flutter/flutter#166499) 2025-04-03 34465683+rkishan516@users.noreply.github.com Migrate to Theme.brightnessOf method (flutter/flutter#163950) 2025-04-03 34465683+rkishan516@users.noreply.github.com Fix: Range slider show overlay for both thumbs on hovering one (flutter/flutter#165393) 2025-04-03 victorsanniay@gmail.com Deprecate ExpansionTileController (flutter/flutter#166368) 2025-04-03 kalathiyadimil@gmail.com Add styling parameters in `PopupMenuDivider` (flutter/flutter#164790) 2025-04-03 matanlurey@users.noreply.github.com Fix ISSUE_TEMPLATE Ordering: `10 < 9`, but `10 > 09` (flutter/flutter#166455) 2025-04-03 katelovett@google.com Skip flaking scheduler test (flutter/flutter#166471) 2025-04-02 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#166043) 2025-04-02 yjbanov@google.com [a11y] add SemanticsValidationResult (flutter/flutter#165935) 2025-04-02 58529443+srujzs@users.noreply.github.com Remove unnecessary cache busting mechanism in hot restart (flutter/flutter#166295) 2025-04-02 engine-flutter-autoroll@skia.org Roll Skia from 52cbb917fffd to 75a0ec473181 (21 revisions) (flutter/flutter#166484) 2025-04-02 30870216+gaaclarke@users.noreply.github.com Started pixel aligning hairlines (flutter/flutter#166351) 2025-04-02 47866232+chunhtai@users.noreply.github.com Adds semantics role and adjust semantics for navigation bar (flutter/flutter#162467) 2025-04-02 jacksongardner@google.com Reland "[skwasm] Dynamic Threading" (flutter/flutter#166454) 2025-04-02 dkwingsmt@users.noreply.github.com [dart:ui] Add `Path.addRSuperellipse` (flutter/flutter#166045) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: Hero animation for page transition (flutter/flutter#164469) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: DelegateTransition for cupertino sheet route (flutter/flutter#164675) 2025-04-02 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from AEdsljKmUiPk92Wvv... to FZdRtNwH7jmADecj6... (flutter/flutter#166383) 2025-04-02 jonahwilliams@google.com [Impeller] cache for text shadows. (flutter/flutter#166228) 2025-04-02 34871572+gmackall@users.noreply.github.com Convert `AppPluginLoaderPlugin` to Kotlin, and add `NativePluginLoaderReflectionBridge` to expose it in Kotlin (flutter/flutter#166027) 2025-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from 4e1f02bc704f to b8b4076b1237 (7 revisions) (flutter/flutter#166474) 2025-04-02 mit@google.com Update Roadmap (flutter/flutter#166332) 2025-04-02 matanlurey@users.noreply.github.com Update `CODEOWNERS` (flutter/flutter#166444) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose ...
Roll Flutter from a0b1b3253416 to 02f13c37841f (37 revisions) flutter/flutter@a0b1b32...02f13c3 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from d10d5af to 95f8e65 (3 revisions) (flutter/flutter#166542) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from b67e53719e78 to 5f65df75febd (2 revisions) (flutter/flutter#166538) 2025-04-03 magder@google.com Update docs to debug the Android embedder (flutter/flutter#166170) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 72562ca93bb5 to d174ec16c3ea (1 revision) (flutter/flutter#166525) 2025-04-03 matej.knopp@gmail.com [macOS] Implement merged UI and platform thread (flutter/flutter#162883) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from f91412f5d89d to b67e53719e78 (1 revision) (flutter/flutter#166527) 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 0d5d57b to d10d5af (31 revisions) (flutter/flutter#166457) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 2be12bc2668b to f91412f5d89d (2 revisions) (flutter/flutter#166517) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a1a13cc3a91 to 72562ca93bb5 (2 revisions) (flutter/flutter#166514) 2025-04-03 dacoharkes@google.com [native_assets] Roll dependencies (flutter/flutter#166282) 2025-04-03 bruno.leroux@gmail.com Fix read only TextField focus traversal on macOS (flutter/flutter#166056) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from c106d7831592 to 2be12bc2668b (1 revision) (flutter/flutter#166509) 2025-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from v7PGvypiiWLO8PbsZ... to vYisSsIgqw0mqFRVJ... (flutter/flutter#166508) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from b8b4076b1237 to 2a1a13cc3a91 (1 revision) (flutter/flutter#166504) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 75a0ec473181 to c106d7831592 (1 revision) (flutter/flutter#166499) 2025-04-03 34465683+rkishan516@users.noreply.github.com Migrate to Theme.brightnessOf method (flutter/flutter#163950) 2025-04-03 34465683+rkishan516@users.noreply.github.com Fix: Range slider show overlay for both thumbs on hovering one (flutter/flutter#165393) 2025-04-03 victorsanniay@gmail.com Deprecate ExpansionTileController (flutter/flutter#166368) 2025-04-03 kalathiyadimil@gmail.com Add styling parameters in `PopupMenuDivider` (flutter/flutter#164790) 2025-04-03 matanlurey@users.noreply.github.com Fix ISSUE_TEMPLATE Ordering: `10 < 9`, but `10 > 09` (flutter/flutter#166455) 2025-04-03 katelovett@google.com Skip flaking scheduler test (flutter/flutter#166471) 2025-04-02 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#166043) 2025-04-02 yjbanov@google.com [a11y] add SemanticsValidationResult (flutter/flutter#165935) 2025-04-02 58529443+srujzs@users.noreply.github.com Remove unnecessary cache busting mechanism in hot restart (flutter/flutter#166295) 2025-04-02 engine-flutter-autoroll@skia.org Roll Skia from 52cbb917fffd to 75a0ec473181 (21 revisions) (flutter/flutter#166484) 2025-04-02 30870216+gaaclarke@users.noreply.github.com Started pixel aligning hairlines (flutter/flutter#166351) 2025-04-02 47866232+chunhtai@users.noreply.github.com Adds semantics role and adjust semantics for navigation bar (flutter/flutter#162467) 2025-04-02 jacksongardner@google.com Reland "[skwasm] Dynamic Threading" (flutter/flutter#166454) 2025-04-02 dkwingsmt@users.noreply.github.com [dart:ui] Add `Path.addRSuperellipse` (flutter/flutter#166045) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: Hero animation for page transition (flutter/flutter#164469) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: DelegateTransition for cupertino sheet route (flutter/flutter#164675) 2025-04-02 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from AEdsljKmUiPk92Wvv... to FZdRtNwH7jmADecj6... (flutter/flutter#166383) 2025-04-02 jonahwilliams@google.com [Impeller] cache for text shadows. (flutter/flutter#166228) 2025-04-02 34871572+gmackall@users.noreply.github.com Convert `AppPluginLoaderPlugin` to Kotlin, and add `NativePluginLoaderReflectionBridge` to expose it in Kotlin (flutter/flutter#166027) 2025-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from 4e1f02bc704f to b8b4076b1237 (7 revisions) (flutter/flutter#166474) 2025-04-02 mit@google.com Update Roadmap (flutter/flutter#166332) 2025-04-02 matanlurey@users.noreply.github.com Update `CODEOWNERS` (flutter/flutter#166444) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose ...
Roll Flutter from a0b1b32 to 02f13c3 (37 revisions) flutter/flutter@a0b1b32...02f13c3 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 07496eb to 4a36dc6 (3 revisions) (flutter/flutter#166542) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from b67e53719e78 to 5f65df75febd (2 revisions) (flutter/flutter#166538) 2025-04-03 magder@google.com Update docs to debug the Android embedder (flutter/flutter#166170) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 72562ca93bb5 to d174ec16c3ea (1 revision) (flutter/flutter#166525) 2025-04-03 matej.knopp@gmail.com [macOS] Implement merged UI and platform thread (flutter/flutter#162883) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from f91412f5d89d to b67e53719e78 (1 revision) (flutter/flutter#166527) 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 125c117 to 07496eb (31 revisions) (flutter/flutter#166457) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 2be12bc2668b to f91412f5d89d (2 revisions) (flutter/flutter#166517) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a1a13cc3a91 to 72562ca93bb5 (2 revisions) (flutter/flutter#166514) 2025-04-03 dacoharkes@google.com [native_assets] Roll dependencies (flutter/flutter#166282) 2025-04-03 bruno.leroux@gmail.com Fix read only TextField focus traversal on macOS (flutter/flutter#166056) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from c106d7831592 to 2be12bc2668b (1 revision) (flutter/flutter#166509) 2025-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from v7PGvypiiWLO8PbsZ... to vYisSsIgqw0mqFRVJ... (flutter/flutter#166508) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from b8b4076b1237 to 2a1a13cc3a91 (1 revision) (flutter/flutter#166504) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 75a0ec473181 to c106d7831592 (1 revision) (flutter/flutter#166499) 2025-04-03 34465683+rkishan516@users.noreply.github.com Migrate to Theme.brightnessOf method (flutter/flutter#163950) 2025-04-03 34465683+rkishan516@users.noreply.github.com Fix: Range slider show overlay for both thumbs on hovering one (flutter/flutter#165393) 2025-04-03 victorsanniay@gmail.com Deprecate ExpansionTileController (flutter/flutter#166368) 2025-04-03 kalathiyadimil@gmail.com Add styling parameters in `PopupMenuDivider` (flutter/flutter#164790) 2025-04-03 matanlurey@users.noreply.github.com Fix ISSUE_TEMPLATE Ordering: `10 < 9`, but `10 > 09` (flutter/flutter#166455) 2025-04-03 katelovett@google.com Skip flaking scheduler test (flutter/flutter#166471) 2025-04-02 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#166043) 2025-04-02 yjbanov@google.com [a11y] add SemanticsValidationResult (flutter/flutter#165935) 2025-04-02 58529443+srujzs@users.noreply.github.com Remove unnecessary cache busting mechanism in hot restart (flutter/flutter#166295) 2025-04-02 engine-flutter-autoroll@skia.org Roll Skia from 52cbb917fffd to 75a0ec473181 (21 revisions) (flutter/flutter#166484) 2025-04-02 30870216+gaaclarke@users.noreply.github.com Started pixel aligning hairlines (flutter/flutter#166351) 2025-04-02 47866232+chunhtai@users.noreply.github.com Adds semantics role and adjust semantics for navigation bar (flutter/flutter#162467) 2025-04-02 jacksongardner@google.com Reland "[skwasm] Dynamic Threading" (flutter/flutter#166454) 2025-04-02 dkwingsmt@users.noreply.github.com [dart:ui] Add `Path.addRSuperellipse` (flutter/flutter#166045) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: Hero animation for page transition (flutter/flutter#164469) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: DelegateTransition for cupertino sheet route (flutter/flutter#164675) 2025-04-02 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from AEdsljKmUiPk92Wvv... to FZdRtNwH7jmADecj6... (flutter/flutter#166383) 2025-04-02 jonahwilliams@google.com [Impeller] cache for text shadows. (flutter/flutter#166228) 2025-04-02 34871572+gmackall@users.noreply.github.com Convert `AppPluginLoaderPlugin` to Kotlin, and add `NativePluginLoaderReflectionBridge` to expose it in Kotlin (flutter/flutter#166027) 2025-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from 4e1f02bc704f to b8b4076b1237 (7 revisions) (flutter/flutter#166474) 2025-04-02 mit@google.com Update Roadmap (flutter/flutter#166332) 2025-04-02 matanlurey@users.noreply.github.com Update `CODEOWNERS` (flutter/flutter#166444) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose ...
This PR adds `Path.addRSuperellipse` to `dart:ui`. This is needed to implement a parity class to `RoundedRectangleBorder` as discussed [here](flutter#164857 (comment)). <details> <summary> Obsolete description, no longer applicable </summary> I want to reuse the existing algorithm created for impeller stroking. The existing algorithm is moved from `path_builder.cc` to `round_superellipse_param.cc`, and a delegated is added so that the same algorithm can output for different path classes. I'm not 100% sure this is _the_ best way to implement this, but I've tried some methods in vain. * `DlPathReceiver` added in flutter#164753 sounds like a similar concept as the delegate created in this PR. I tried to use that but not only are the methods private, they're neither in an accessible directory. * I also thought of converting an impeller `Path` to a skia path, but it seems that the impeller path isn't designed to be traversed. * Another possibility is that we refactor impeller stroking to be based on the triangles instead of path, a direction we agreed to eventually move toward, which allows avoiding code share at all. I've briefly read the code in `StrokePathGeometry` and have some ideas but also something uncertain, so I didn't choose this path for now. </details> ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Roll Flutter from a0b1b32 to 02f13c3 (37 revisions) flutter/flutter@a0b1b32...02f13c3 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 07496eb to 4a36dc6 (3 revisions) (flutter/flutter#166542) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from b67e53719e78 to 5f65df75febd (2 revisions) (flutter/flutter#166538) 2025-04-03 magder@google.com Update docs to debug the Android embedder (flutter/flutter#166170) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 72562ca93bb5 to d174ec16c3ea (1 revision) (flutter/flutter#166525) 2025-04-03 matej.knopp@gmail.com [macOS] Implement merged UI and platform thread (flutter/flutter#162883) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from f91412f5d89d to b67e53719e78 (1 revision) (flutter/flutter#166527) 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 125c117 to 07496eb (31 revisions) (flutter/flutter#166457) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 2be12bc2668b to f91412f5d89d (2 revisions) (flutter/flutter#166517) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a1a13cc3a91 to 72562ca93bb5 (2 revisions) (flutter/flutter#166514) 2025-04-03 dacoharkes@google.com [native_assets] Roll dependencies (flutter/flutter#166282) 2025-04-03 bruno.leroux@gmail.com Fix read only TextField focus traversal on macOS (flutter/flutter#166056) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from c106d7831592 to 2be12bc2668b (1 revision) (flutter/flutter#166509) 2025-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from v7PGvypiiWLO8PbsZ... to vYisSsIgqw0mqFRVJ... (flutter/flutter#166508) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from b8b4076b1237 to 2a1a13cc3a91 (1 revision) (flutter/flutter#166504) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 75a0ec473181 to c106d7831592 (1 revision) (flutter/flutter#166499) 2025-04-03 34465683+rkishan516@users.noreply.github.com Migrate to Theme.brightnessOf method (flutter/flutter#163950) 2025-04-03 34465683+rkishan516@users.noreply.github.com Fix: Range slider show overlay for both thumbs on hovering one (flutter/flutter#165393) 2025-04-03 victorsanniay@gmail.com Deprecate ExpansionTileController (flutter/flutter#166368) 2025-04-03 kalathiyadimil@gmail.com Add styling parameters in `PopupMenuDivider` (flutter/flutter#164790) 2025-04-03 matanlurey@users.noreply.github.com Fix ISSUE_TEMPLATE Ordering: `10 < 9`, but `10 > 09` (flutter/flutter#166455) 2025-04-03 katelovett@google.com Skip flaking scheduler test (flutter/flutter#166471) 2025-04-02 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#166043) 2025-04-02 yjbanov@google.com [a11y] add SemanticsValidationResult (flutter/flutter#165935) 2025-04-02 58529443+srujzs@users.noreply.github.com Remove unnecessary cache busting mechanism in hot restart (flutter/flutter#166295) 2025-04-02 engine-flutter-autoroll@skia.org Roll Skia from 52cbb917fffd to 75a0ec473181 (21 revisions) (flutter/flutter#166484) 2025-04-02 30870216+gaaclarke@users.noreply.github.com Started pixel aligning hairlines (flutter/flutter#166351) 2025-04-02 47866232+chunhtai@users.noreply.github.com Adds semantics role and adjust semantics for navigation bar (flutter/flutter#162467) 2025-04-02 jacksongardner@google.com Reland "[skwasm] Dynamic Threading" (flutter/flutter#166454) 2025-04-02 dkwingsmt@users.noreply.github.com [dart:ui] Add `Path.addRSuperellipse` (flutter/flutter#166045) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: Hero animation for page transition (flutter/flutter#164469) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: DelegateTransition for cupertino sheet route (flutter/flutter#164675) 2025-04-02 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from AEdsljKmUiPk92Wvv... to FZdRtNwH7jmADecj6... (flutter/flutter#166383) 2025-04-02 jonahwilliams@google.com [Impeller] cache for text shadows. (flutter/flutter#166228) 2025-04-02 34871572+gmackall@users.noreply.github.com Convert `AppPluginLoaderPlugin` to Kotlin, and add `NativePluginLoaderReflectionBridge` to expose it in Kotlin (flutter/flutter#166027) 2025-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from 4e1f02bc704f to b8b4076b1237 (7 revisions) (flutter/flutter#166474) 2025-04-02 mit@google.com Update Roadmap (flutter/flutter#166332) 2025-04-02 matanlurey@users.noreply.github.com Update `CODEOWNERS` (flutter/flutter#166444) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose ...
Roll Flutter from a0b1b32 to 02f13c3 (37 revisions) flutter/flutter@a0b1b32...02f13c3 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 07496eb to 4a36dc6 (3 revisions) (flutter/flutter#166542) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from b67e53719e78 to 5f65df75febd (2 revisions) (flutter/flutter#166538) 2025-04-03 magder@google.com Update docs to debug the Android embedder (flutter/flutter#166170) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 72562ca93bb5 to d174ec16c3ea (1 revision) (flutter/flutter#166525) 2025-04-03 matej.knopp@gmail.com [macOS] Implement merged UI and platform thread (flutter/flutter#162883) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from f91412f5d89d to b67e53719e78 (1 revision) (flutter/flutter#166527) 2025-04-03 engine-flutter-autoroll@skia.org Roll Packages from 125c117 to 07496eb (31 revisions) (flutter/flutter#166457) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 2be12bc2668b to f91412f5d89d (2 revisions) (flutter/flutter#166517) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from 2a1a13cc3a91 to 72562ca93bb5 (2 revisions) (flutter/flutter#166514) 2025-04-03 dacoharkes@google.com [native_assets] Roll dependencies (flutter/flutter#166282) 2025-04-03 bruno.leroux@gmail.com Fix read only TextField focus traversal on macOS (flutter/flutter#166056) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from c106d7831592 to 2be12bc2668b (1 revision) (flutter/flutter#166509) 2025-04-03 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from v7PGvypiiWLO8PbsZ... to vYisSsIgqw0mqFRVJ... (flutter/flutter#166508) 2025-04-03 engine-flutter-autoroll@skia.org Roll Dart SDK from b8b4076b1237 to 2a1a13cc3a91 (1 revision) (flutter/flutter#166504) 2025-04-03 engine-flutter-autoroll@skia.org Roll Skia from 75a0ec473181 to c106d7831592 (1 revision) (flutter/flutter#166499) 2025-04-03 34465683+rkishan516@users.noreply.github.com Migrate to Theme.brightnessOf method (flutter/flutter#163950) 2025-04-03 34465683+rkishan516@users.noreply.github.com Fix: Range slider show overlay for both thumbs on hovering one (flutter/flutter#165393) 2025-04-03 victorsanniay@gmail.com Deprecate ExpansionTileController (flutter/flutter#166368) 2025-04-03 kalathiyadimil@gmail.com Add styling parameters in `PopupMenuDivider` (flutter/flutter#164790) 2025-04-03 matanlurey@users.noreply.github.com Fix ISSUE_TEMPLATE Ordering: `10 < 9`, but `10 > 09` (flutter/flutter#166455) 2025-04-03 katelovett@google.com Skip flaking scheduler test (flutter/flutter#166471) 2025-04-02 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#166043) 2025-04-02 yjbanov@google.com [a11y] add SemanticsValidationResult (flutter/flutter#165935) 2025-04-02 58529443+srujzs@users.noreply.github.com Remove unnecessary cache busting mechanism in hot restart (flutter/flutter#166295) 2025-04-02 engine-flutter-autoroll@skia.org Roll Skia from 52cbb917fffd to 75a0ec473181 (21 revisions) (flutter/flutter#166484) 2025-04-02 30870216+gaaclarke@users.noreply.github.com Started pixel aligning hairlines (flutter/flutter#166351) 2025-04-02 47866232+chunhtai@users.noreply.github.com Adds semantics role and adjust semantics for navigation bar (flutter/flutter#162467) 2025-04-02 jacksongardner@google.com Reland "[skwasm] Dynamic Threading" (flutter/flutter#166454) 2025-04-02 dkwingsmt@users.noreply.github.com [dart:ui] Add `Path.addRSuperellipse` (flutter/flutter#166045) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: Hero animation for page transition (flutter/flutter#164469) 2025-04-02 34465683+rkishan516@users.noreply.github.com Fix: DelegateTransition for cupertino sheet route (flutter/flutter#164675) 2025-04-02 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from AEdsljKmUiPk92Wvv... to FZdRtNwH7jmADecj6... (flutter/flutter#166383) 2025-04-02 jonahwilliams@google.com [Impeller] cache for text shadows. (flutter/flutter#166228) 2025-04-02 34871572+gmackall@users.noreply.github.com Convert `AppPluginLoaderPlugin` to Kotlin, and add `NativePluginLoaderReflectionBridge` to expose it in Kotlin (flutter/flutter#166027) 2025-04-02 engine-flutter-autoroll@skia.org Roll Dart SDK from 4e1f02bc704f to b8b4076b1237 (7 revisions) (flutter/flutter#166474) 2025-04-02 mit@google.com Update Roadmap (flutter/flutter#166332) 2025-04-02 matanlurey@users.noreply.github.com Update `CODEOWNERS` (flutter/flutter#166444) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose ...
This PR adds
Path.addRSuperellipse
todart:ui
. This is needed to implement a parity class toRoundedRectangleBorder
as discussed here.Obsolete description, no longer applicable
I want to reuse the existing algorithm created for impeller stroking. The existing algorithm is moved from `path_builder.cc` to `round_superellipse_param.cc`, and a delegated is added so that the same algorithm can output for different path classes.I'm not 100% sure this is the best way to implement this, but I've tried some methods in vain.
DlPathReceiver
added in [DisplayList] DlPath supports generic path dispatching #164753 sounds like a similar concept as the delegate created in this PR. I tried to use that but not only are the methods private, they're neither in an accessible directory.Path
to a skia path, but it seems that the impeller path isn't designed to be traversed.StrokePathGeometry
and have some ideas but also something uncertain, so I didn't choose this path for now.Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.