Skip to content

Conversation

@jason-simmons
Copy link
Member

Fixes #176146

@github-actions github-actions bot added a: text input Entering text in a text field or keyboard related problems engine flutter/engine related. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Oct 17, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly addresses an issue where the text shadow cache was not considering the paint color, leading to incorrect rendering for blurred text with different colors. The fix involves adding the color to the TextShadowCacheKey, updating the corresponding hash and equality functions, and passing the color during key creation. A new unit test has been added which effectively verifies that blurred text with different colors results in distinct cache entries. The changes are logical and well-implemented.

Comment on lines 855 to 857
std::array<DlColor, 4> colors{DlColor::kRed(), DlColor::kGreen(),
DlColor::kBlue(), DlColor::kRed()};
for (DlColor color : colors) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For improved conciseness and to follow modern C++ practices, you can use an initializer list directly within the range-based for loop. This avoids creating a separate named variable for the colors. Using const auto& is also more efficient as it avoids copying the DlColor object in each iteration.

  for (const auto& color : {
      DlColor::kRed(), DlColor::kGreen(), DlColor::kBlue(), DlColor::kRed(),
  }) {

lhs.identifier == rhs.identifier &&
lhs.is_single_glyph == rhs.is_single_glyph &&
lhs.font.IsEqual(rhs.font) &&
lhs.rounded_sigma == rhs.rounded_sigma;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we have C++20, we should replace this with a defaulted operator==. This would have entirely avoided the issue.

@jason-simmons jason-simmons added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 21, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented Oct 21, 2025

autosubmit label was removed for flutter/flutter/177140, because - The status or check suite Windows windows_unopt has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 21, 2025
@jason-simmons jason-simmons added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 22, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Oct 22, 2025
Merged via the queue into flutter:master with commit 75004a6 Oct 22, 2025
186 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Oct 22, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Oct 22, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Oct 22, 2025
Roll Flutter from 2d34167 to 75004a6 (39 revisions)

flutter/flutter@2d34167...75004a6

2025-10-22 jason-simmons@users.noreply.github.com [Impeller] Add the paint color to the key of the text shadow cache (flutter/flutter#177140)
2025-10-22 engine-flutter-autoroll@skia.org Roll Skia from 96e75ca8e24b to 928b5cf727c1 (2 revisions) (flutter/flutter#177387)
2025-10-22 jason-simmons@users.noreply.github.com Roll reclient to version 185 (flutter/flutter#177293)
2025-10-22 engine-flutter-autoroll@skia.org Roll Skia from b157f6b95f95 to 96e75ca8e24b (4 revisions) (flutter/flutter#177366)
2025-10-22 bruno.leroux@gmail.com Fix InputDatePickerFormField does not inherit local InputDecorationTheme (flutter/flutter#177090)
2025-10-22 engine-flutter-autoroll@skia.org Roll Skia from 2c6162c977db to b157f6b95f95 (2 revisions) (flutter/flutter#177362)
2025-10-22 engine-flutter-autoroll@skia.org Roll Skia from cadf8e7e6fca to 2c6162c977db (4 revisions) (flutter/flutter#177359)
2025-10-22 katelovett@google.com Cleanup after -news_toolkit, +google_fonts, and some leftover `team-go_router` (flutter/flutter#176841)
2025-10-21 eugene.makar@yandex.ru don't break sheet's snap from physics (flutter/flutter#171157)
2025-10-21 engine-flutter-autoroll@skia.org Roll Dart SDK from 913c2ae1b367 to c23010c4f9e6 (8 revisions) (flutter/flutter#177348)
2025-10-21 116356835+AbdeMohlbi@users.noreply.github.com Fix typo in comment about screen availibility  (flutter/flutter#177168)
2025-10-21 kazbek.sultanov.doc@gmail.com Fix(AnimatedScrollView): exclude outgoing items in removeAllItems (flutter/flutter#176452)
2025-10-21 jason-simmons@users.noreply.github.com Enable deprecated_member_use_from_same_package for all packages containing tests of Dart fixes defined within the package (flutter/flutter#177341)
2025-10-21 engine-flutter-autoroll@skia.org Roll Skia from 19bff385f7e8 to cadf8e7e6fca (3 revisions) (flutter/flutter#177331)
2025-10-21 jesswon@google.com Revert "[Android 16] Update `android_engine_vulkan_tests` to Test Against SDK 36 Emulator" (flutter/flutter#177292)
2025-10-21 108678139+manu-sncf@users.noreply.github.com Fix SliverMainAxisGroup.cacheOrigin (flutter/flutter#175760)
2025-10-21 engine-flutter-autoroll@skia.org Roll Skia from 75c756e029c9 to 19bff385f7e8 (3 revisions) (flutter/flutter#177316)
2025-10-21 59215665+davidhicks980@users.noreply.github.com Fix typo in overlay.dart documentation comment (flutter/flutter#176612)
2025-10-21 bkonyi@google.com [ Tool ] Output DTD URI for Flutter web applications (flutter/flutter#177310)
2025-10-21 engine-flutter-autoroll@skia.org Roll Skia from 982988b472a4 to 75c756e029c9 (1 revision) (flutter/flutter#177305)
2025-10-21 engine-flutter-autoroll@skia.org Roll Skia from 42ff13a91c80 to 982988b472a4 (8 revisions) (flutter/flutter#177300)
2025-10-21 bruno.leroux@gmail.com Fix DateRangePickerDialog does not inherit local InputDecorationTheme (flutter/flutter#177086)
2025-10-21 fishythefish@users.noreply.github.com Remove references to dart:_js_annotations (flutter/flutter#176698)
2025-10-20 31859944+LongCatIsLooong@users.noreply.github.com Make `FlutterSceneLifeCycleProvider.sceneLifeCycleDelegate` readonly (flutter/flutter#177240)
2025-10-20 ahmedsameha1@gmail.com Make sure that a CupertinoDesktopTextSelectionToolbar doesn't crash i… (flutter/flutter#173964)
2025-10-20 ahmedsameha1@gmail.com Make sure that a BottomSheet doesn't crash in 0x0 environment (flutter/flutter#172229)
2025-10-20 jason-simmons@users.noreply.github.com Move the Fuchsia SDK to //third_party/fuchsia-sdk (flutter/flutter#177118)
2025-10-20 engine-flutter-autoroll@skia.org Roll Skia from 641994569415 to 42ff13a91c80 (8 revisions) (flutter/flutter#177283)
2025-10-20 ahmedsameha1@gmail.com Make sure that a NavigationDrawer doesn't crash in 0x0 environment (flutter/flutter#176951)
2025-10-20 sokolovskyi.konstantin@gmail.com Fix ink features painting in TabBar. (flutter/flutter#177155)
2025-10-20 ahmedsameha1@gmail.com Make sure that SimpleDialog and SimpleDialogOption do not crash in 0x0 environment (flutter/flutter#174229)
2025-10-20 sokolovskyi.konstantin@gmail.com Fix ink features painting in YearPicker. (flutter/flutter#177014)
2025-10-20 116356835+AbdeMohlbi@users.noreply.github.com Update `image.error_builder.0.dart` to replace the emoji with some text  (flutter/flutter#176886)
2025-10-20 engine-flutter-autoroll@skia.org Roll Skia from ed4294faecde to 641994569415 (4 revisions) (flutter/flutter#177264)
2025-10-20 116356835+AbdeMohlbi@users.noreply.github.com Remove redundant name field form `TargetPlatform` and `XCDeviceEventInterface` enums (flutter/flutter#176890)
2025-10-20 55750689+AthulJoseph27@users.noreply.github.com Added support to pass in texture type while creating textures. (flutter/flutter#175376)
2025-10-20 engine-flutter-autoroll@skia.org Roll Packages from 3747006 to d113bbc (6 revisions) (flutter/flutter#177270)
2025-10-20 jason-simmons@users.noreply.github.com Roll Dart SDK from 2cd2106f2cef to 913c2ae1b367 (2 revisions) (flutter/flutter#177258)
2025-10-20 30870216+gaaclarke@users.noreply.github.com Added link to ClipRect from ImageFilter in the docstring (flutter/flutter#177196)

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 louisehsu@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: text input Entering text in a text field or keyboard related problems e: impeller Impeller rendering backend issues and features requests engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Text shadow styling inconsistent when identical text content is displayed in different instances of a widget

2 participants