-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Include transform in static Gradient lerp methods #149624
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
LinearGradient.lerp(), RadialGradient.lerp() and SweepGradient.lerp() no longer drop the GradientTransform of `a` and/or `b`.
| tileMode: t < 0.5 ? a.tileMode : b.tileMode, // TODO(ianh): interpolate tile mode | ||
| transform: t < 0.5 ? a.transform : b.transform, |
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.
not a big deal, but if you feel like it, you could remove the TODO on the line above (or alternatively, add one on the new line, with a link to #443)
(same for all three gradients)
Hixie
left a comment
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.
nate-thegrate
left a comment
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.
LGTM! 👍
Thanks for noticing the bug and implementing a fix!
| expect(testGradient1, equals(actual0)); | ||
| expect(testGradient2, equals(actual1)); | ||
| expect(testGradient2, equals(actual2)); |
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.
| expect(testGradient1, equals(actual0)); | |
| expect(testGradient2, equals(actual1)); | |
| expect(testGradient2, equals(actual2)); | |
| expect(actual0, equals(testGradient1)); | |
| expect(actual1, equals(testGradient2)); | |
| expect(actual2, equals(testGradient2)); |
Tiny nit: "actual" should be passed as the first argument for expect() (here and below). Not a big deal though, since in this case the test works fine either way.
|
We can probably merge this now, and then make the aforementioned tweaks the next time we update these functions. |
flutter/flutter@01db23b...349ec71 2024-06-14 [email protected] Add tests for navigator.0.dart (flutter/flutter#150034) 2024-06-14 [email protected] Switch to `Iterable.cast` instance method (flutter/flutter#150185) 2024-06-14 [email protected] Include transform in static Gradient lerp methods (flutter/flutter#149624) 2024-06-14 [email protected] Validate the `contrastLevel` during `ColorScheme` creation (flutter/flutter#150176) 2024-06-14 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.9 to 3.25.10 (flutter/flutter#150228) 2024-06-13 [email protected] Fix leaky test. (flutter/flutter#150235) 2024-06-13 [email protected] Document CIPD role & login for upgrading Android engine (flutter/flutter#149433) 2024-06-13 [email protected] Update doc for `ColorScheme.surface` (flutter/flutter#150212) 2024-06-13 [email protected] Roll pub packages (flutter/flutter#150206) 2024-06-13 [email protected] Bump new release for a11y_assessment (flutter/flutter#150213) 2024-06-13 [email protected] Use --(no-)strip-wams instead of --(no-)-name-section in `dart compile wasm` (flutter/flutter#149641) 2024-06-13 [email protected] Reland "Identify and re-throw our dependency checking errors in flutter.groovy" (flutter/flutter#150128) 2024-06-13 [email protected] Use --(no-)strip-wams instead of --(no-)-name-section in `dart compile wasm` (flutter/flutter#150180) 2024-06-13 [email protected] Suppress Flutter update check if `--machine` is present at all. (flutter/flutter#150138) 2024-06-13 [email protected] [Reland] Introduce `ChipAnimationStyle` to override default chips animations durations (flutter/flutter#149876) 2024-06-13 [email protected] Update framework and flutter fix flutter.dev/docs links (flutter/flutter#150174) 2024-06-13 [email protected] Roll Flutter Engine from 4cb3025d3abf to 8167dffd1914 (2 revisions) (flutter/flutter#150208) 2024-06-13 [email protected] Replace InputDecorator M3 golden test (flutter/flutter#150111) 2024-06-13 [email protected] Roll Packages from 260102b to 7805455 (2 revisions) (flutter/flutter#150198) 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 [email protected],[email protected],[email protected] 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 To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
*Fixes flutter#149534 Gradient subclasses' static lerp methods drop the GradientTransform of both `a` and `b`* LinearGradient.lerp(), RadialGradient.lerp() and SweepGradient.lerp() no longer drop the GradientTransform of `a` and/or `b`. The primitive interpolation is performed the same way TileMode is handled: `transform: t < 0.5 ? a.transform : b.transform`. ## Media <details> <summary>Video demonstration</summary> ### Before https://github.com/flutter/flutter/assets/65806473/de14e201-b1a7-44ba-95ff-e62587c7f6ac ### After https://github.com/flutter/flutter/assets/65806473/d48f40e2-1b0f-4ac8-a45c-b3c423e3fd64 </details> - Changed no documentation. - Non-breaking change.
*Fixes flutter#149534 Gradient subclasses' static lerp methods drop the GradientTransform of both `a` and `b`* LinearGradient.lerp(), RadialGradient.lerp() and SweepGradient.lerp() no longer drop the GradientTransform of `a` and/or `b`. The primitive interpolation is performed the same way TileMode is handled: `transform: t < 0.5 ? a.transform : b.transform`. ## Media <details> <summary>Video demonstration</summary> ### Before https://github.com/flutter/flutter/assets/65806473/de14e201-b1a7-44ba-95ff-e62587c7f6ac ### After https://github.com/flutter/flutter/assets/65806473/d48f40e2-1b0f-4ac8-a45c-b3c423e3fd64 </details> - Changed no documentation. - Non-breaking change.
Fixes #149534 Gradient subclasses' static lerp methods drop the GradientTransform of both
aandbLinearGradient.lerp(), RadialGradient.lerp() and SweepGradient.lerp() no longer drop the GradientTransform of
aand/orb.The primitive interpolation is performed the same way TileMode is handled:
transform: t < 0.5 ? a.transform : b.transform.Media
Video demonstration
Before
Gradient.lerp.Loses.GradientTransform.mp4
After
Gradient.lerp.Preserved.Transform.mp4
Pre-launch Checklist
///).