Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[Impeller] Make text glyph offsets respect the current transform#39119

Merged
bdero merged 1 commit into
flutter-team-archive:mainfrom
bdero:bdero/fix-text-transforms
Jan 25, 2023
Merged

[Impeller] Make text glyph offsets respect the current transform#39119
bdero merged 1 commit into
flutter-team-archive:mainfrom
bdero:bdero/fix-text-transforms

Conversation

@bdero

@bdero bdero commented Jan 25, 2023

Copy link
Copy Markdown
Contributor

Resolves flutter/flutter#117428.

Whoops, forgot to account for the Z basis.

Before:
Screen Shot 2023-01-24 at 7 50 16 PM
Screenshot 2023-01-24 at 9 14 09 PM

After:
Screen Shot 2023-01-24 at 7 48 22 PM
Screenshot 2023-01-24 at 9 13 03 PM

@jonahwilliams jonahwilliams left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM!

@delfme

delfme commented Jan 25, 2023

Copy link
Copy Markdown

You guys are amazing 🚀👏
@bdero @jonahwilliams is there any chance that Impeller’s text rendering could fix the infamous emojis issue? flutter/flutter#28894 (comment)

Checked ios milestone, and if emojis got fixed, we could ship our app with Impeller 🎉
https://github.com/flutter/flutter/milestone/77

@zanderso zanderso left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thoughts on whether this is worth a CP?

@bdero

bdero commented Jan 25, 2023

Copy link
Copy Markdown
Contributor Author

is there any chance that Impeller’s text rendering could fix the infamous emojis issue?

@delfme This appears to be a glyph metrics issue as opposed to a renderer bug; there's not much Impeller itself could do in the short term to help high level SkParagraph layout decisions. However, I think we should keep issues like this in mind as we explore options for integrating a separate path renderer flutter/flutter#112213.

Thoughts on whether this is worth a CP?

@zanderso I recall @jonahwilliams mentioning a Cupertino widget that might be broken from this, although I haven't come across it myself yet. I'm leaning towards yes, since I think these kinds of effects aren't uncommon.

@bdero bdero merged commit 30c02e4 into flutter-team-archive:main Jan 25, 2023
@chinmaygarde

Copy link
Copy Markdown
Contributor

Thoughts on whether this is worth a CP?

I think this is worth a CP but we should figure out a rubric for the CPs to small fixes to issues filed by previewers. Added a point of discussion to the weekly.

@delfme

delfme commented Jan 25, 2023

Copy link
Copy Markdown

is there any chance that Impeller’s text rendering could fix the infamous emojis issue?

@delfme This appears to be a glyph metrics issue as opposed to a renderer bug; there's not much Impeller itself could do in the short term to help high level SkParagraph layout decisions. However, I think we should keep issues like this in mind as we explore options for integrating a separate path renderer flutter/flutter#112213.

@bdero That’s much appreciated. As workaround we: 1) fixed emojis on dart side for Text + 2) built a native Textfield. The two points combined wipe out those weird emojis, but it’s expensive. Hope you guys can detach from SkParagraph for this somehow or help them land a fix.

@zanderso

Copy link
Copy Markdown
Contributor

Thoughts on whether this is worth a CP?

I think this is worth a CP but we should figure out a rubric for the CPs to small fixes to issues filed by previewers. Added a point of discussion to the weekly.

👍🏻 In general the bar for a CP gets higher and higher the deeper we get into the cycle.

sourcegraph-bot pushed a commit to sgtest/megarepo that referenced this pull request Jan 25, 2023
…rent transform (flutter-team-archive/engine#39119) (#119179)

Commit: 3be330aaf9e567f0179cc46a734fa6bc4e6de1ef
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 26, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 26, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 26, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 26, 2023
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jan 27, 2023
* a0f7c8c 6f806491e [web] use a render target instead of a new surface for Picture.toImage (flutter-team-archive/engine#38573) (flutter/flutter#119143)

* e85547b Roll Plugins from 11361d01099d to 8bab180a668a (28 revisions) (flutter/flutter#119115)

* 81052a7 Add usage event to track when a iOS network device is used (flutter/flutter#118915)

* cd34fa6 24aa324b8 Roll Skia from da5034f9d117 to c4b171fe5668 (1 revision) (flutter-team-archive/engine#39127) (flutter/flutter#119159)

* 6cd4fa4 Add --serve-observatory flag to run, attach, and test (flutter/flutter#118402)

* 48cd95d 1e5efd144 [various] Enable use_build_context_synchronously (flutter-team-archive/plugins#6585) (flutter/flutter#119162)

* b907acd Add the cupertino system colors mint, cyan, and brown (flutter/flutter#118971)

* c6fa5d9 c54580138 Only build analyze_snapshot on Linux host (flutter-team-archive/engine#39129) (flutter/flutter#119164)

* f34ce86 7b72038ef Roll Fuchsia Linux SDK from E9m-Gk382PkB7_Nbp... to pGX7tanT1okL8XCg-... (flutter-team-archive/engine#39130) (flutter/flutter#119169)

* 0dd63d3 Export View (flutter/flutter#117475)

* 1fd71de Remove superfluous words from comments (flutter/flutter#119055)

* cef9cc7 2e7d6fa7b Remove unnecessary null checks (flutter-team-archive/engine#39113) (flutter/flutter#119174)

* 3be330a 30c02e4c8 [Impeller] Make text glyph offsets respect the current transform (flutter-team-archive/engine#39119) (flutter/flutter#119179)

* a45727d Add MediaQuery to View (flutter/flutter#118004)

* 02a9c15 Fix lexer issue where select/plural/other/underscores cannot be in identifier names. (flutter/flutter#119190)

* 766e4d2 Remove single-view assumption from material library (flutter/flutter#117486)

* dcd3679 Roll Flutter Engine from 30c02e4c8b01 to 44362c90fcec (2 revisions) (flutter/flutter#119185)

* 9037e3f roll packages (flutter/flutter#119192)

* e0e88da Roll Flutter Engine from 44362c90fcec to 308ce918f67f (2 revisions) (flutter/flutter#119201)

* 202e902 Roll Flutter Engine from 308ce918f67f to 8f1e5dc1b124 (4 revisions) (flutter/flutter#119208)

* b319938 Add more flexible image API (flutter/flutter#118966)

* fc02701 Marks Mac run_debug_test_macos to be unflaky (flutter/flutter#117470)

* c9affdb Move windows-x64-flutter.zip to windows-x64-debug location. (flutter/flutter#119177)
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 27, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 28, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Jan 28, 2023
auto-submit Bot pushed a commit to flutter-team-archive/plugins that referenced this pull request Jan 28, 2023
* a0f7c8c 6f806491e [web] use a render target instead of a new surface for Picture.toImage (flutter-team-archive/engine#38573) (flutter/flutter#119143)

* e85547b Roll Plugins from 11361d0 to 8bab180 (28 revisions) (flutter/flutter#119115)

* 81052a7 Add usage event to track when a iOS network device is used (flutter/flutter#118915)

* cd34fa6 24aa324b8 Roll Skia from da5034f9d117 to c4b171fe5668 (1 revision) (flutter-team-archive/engine#39127) (flutter/flutter#119159)

* 6cd4fa4 Add --serve-observatory flag to run, attach, and test (flutter/flutter#118402)

* 48cd95d 1e5efd1 [various] Enable use_build_context_synchronously (#6585) (flutter/flutter#119162)

* b907acd Add the cupertino system colors mint, cyan, and brown (flutter/flutter#118971)

* c6fa5d9 c54580138 Only build analyze_snapshot on Linux host (flutter-team-archive/engine#39129) (flutter/flutter#119164)

* f34ce86 7b72038ef Roll Fuchsia Linux SDK from E9m-Gk382PkB7_Nbp... to pGX7tanT1okL8XCg-... (flutter-team-archive/engine#39130) (flutter/flutter#119169)

* 0dd63d3 Export View (flutter/flutter#117475)

* 1fd71de Remove superfluous words from comments (flutter/flutter#119055)

* cef9cc7 2e7d6fa7b Remove unnecessary null checks (flutter-team-archive/engine#39113) (flutter/flutter#119174)

* 3be330a 30c02e4c8 [Impeller] Make text glyph offsets respect the current transform (flutter-team-archive/engine#39119) (flutter/flutter#119179)

* a45727d Add MediaQuery to View (flutter/flutter#118004)

* 02a9c15 Fix lexer issue where select/plural/other/underscores cannot be in identifier names. (flutter/flutter#119190)

* 766e4d2 Remove single-view assumption from material library (flutter/flutter#117486)

* dcd3679 Roll Flutter Engine from 30c02e4c8b01 to 44362c90fcec (2 revisions) (flutter/flutter#119185)

* 9037e3f roll packages (flutter/flutter#119192)

* e0e88da Roll Flutter Engine from 44362c90fcec to 308ce918f67f (2 revisions) (flutter/flutter#119201)

* 202e902 Roll Flutter Engine from 308ce918f67f to 8f1e5dc1b124 (4 revisions) (flutter/flutter#119208)

* b319938 Add more flexible image API (flutter/flutter#118966)

* fc02701 Marks Mac run_debug_test_macos to be unflaky (flutter/flutter#117470)

* c9affdb Move windows-x64-flutter.zip to windows-x64-debug location. (flutter/flutter#119177)

* 7d3b762 Fix: Added `margin` parameter for `MaterialBanner` class (flutter/flutter#119005)

* 40bd82e Roll Plugins from 1e5efd1 to e9406bc (4 revisions) (flutter/flutter#119249)

* 07522b7 Roll Flutter Engine from 8f1e5dc1b124 to 04f22beebb42 (5 revisions) (flutter/flutter#119218)

* 459c1b7 Marks Mac complex_layout_scroll_perf_macos__timeline_summary to be unflaky (flutter/flutter#119157)

* 2b8f2d0 Add API for discovering assets (flutter/flutter#118410)

* a04ab71 Revert "Add API for discovering assets (#118410)" (flutter/flutter#119273)

* 1da487d Roll Flutter Engine from 04f22beebb42 to 93901260098e (12 revisions) (flutter/flutter#119279)

* 1b779b6 Roll Flutter Engine from 93901260098e to be0125bd5716 (2 revisions) (flutter/flutter#119283)

* 42bd5f2 Download platform-agnostic Flutter Web SDK in the flutter_tool (flutter/flutter#118654)

* d52b6b9 Roll Flutter Engine from be0125bd5716 to d17004dd96d7 (2 revisions) (flutter/flutter#119287)

* 4aed487 Roll Flutter Engine from d17004dd96d7 to a63d98feb608 (3 revisions) (flutter/flutter#119299)

* 05fc29f Rename DeviceGestureSettings.fromWindow to DeviceGestureSettings.fromView (flutter/flutter#119291)

* 86ab01d Revert "Add --serve-observatory flag to run, attach, and test (#118402)" (flutter/flutter#119302)

* 8d03af3 Roll Flutter Engine from a63d98feb608 to 79c958fc7e9b (3 revisions) (flutter/flutter#119306)

* 27f8ebd ade610ec8 [fuchsia] Migrate to new RealmBuilder API (flutter-team-archive/engine#39175) (flutter/flutter#119310)

* c31856b Roll Plugins from e9406bc to ff84c44 (2 revisions) (flutter/flutter#119335)

* d939863 Roll Flutter Engine from ade610ec88b5 to 621e13cc9be3 (3 revisions) (flutter/flutter#119344)

* 0b57596 Run "flutter update-packages --force-upgrade" (flutter/flutter#119340)

* 0417f66 Fix nullability of TableRow.children (flutter/flutter#119285)

* fc3e824 Roll Flutter Engine from 621e13cc9be3 to 189a69d9918d (3 revisions) (flutter/flutter#119347)

* ad1a44d Add `requestFocusOnTap` to `DropdownMenu` (flutter/flutter#117504)

* 4dbb573 [flutter_tools] remove usage of remap samplers arg (flutter/flutter#119346)

* b2f2bf3 Marks Linux run_release_test_linux to be unflaky (flutter/flutter#119156)

* 3f95bef Roll Flutter Engine from 189a69d9918d to b32fc7fef208 (3 revisions) (flutter/flutter#119358)

* 2e8bebd Remove single window assumption from macrobenchmark (flutter/flutter#119368)

* ab2232a Roll Flutter Engine from b32fc7fef208 to 8567d96993ed (5 revisions) (flutter/flutter#119369)

* e9ca9cc Remove references to dart:ui's window singelton (flutter/flutter#119296)

* da3d4bd Roll Flutter Engine from 8567d96993ed to 225ae87334a5 (2 revisions) (flutter/flutter#119376)

* 018c1f8 e2e089ebb Use arm64 engine variant on simulators in iOS unit tests (flutter-team-archive/engine#39213) (flutter/flutter#119387)

* e349bdc 19651cb1d Roll Dart SDK from 2cd9b7ac95e8 to 135f4c51c9ff (3 revisions) (flutter-team-archive/engine#39214) (flutter/flutter#119389)

* 95345b5 77bee011d Roll Dart SDK from 2cd9b7ac95e8 to 135f4c51c9ff (3 revisions) (flutter-team-archive/engine#39217) (flutter/flutter#119394)

* de43ec9 Roll Flutter Engine from 77bee011dabf to 3394b84cc5d7 (3 revisions) (flutter/flutter#119405)

* f8d4de4 3dd0fc13f Roll Fuchsia Linux SDK from 6c2H32X3EXOGlWIgb... to TiK_fVODtUaKOgxRf... (flutter-team-archive/engine#39224) (flutter/flutter#119408)

* 7856411 7c5c6c9c9 Roll Skia from 0b75650caf2a to 7df7a83f733d (13 revisions) (flutter-team-archive/engine#39225) (flutter/flutter#119413)

* 75680ae 649362168 Roll Dart SDK from f9583e13e214 to 52dc94238144 (1 revision) (flutter-team-archive/engine#39227) (flutter/flutter#119416)
XilaiZhang pushed a commit that referenced this pull request Jan 31, 2023
) (#39140)

Co-authored-by: Brandon DeRosier <bdero@google.com>
@delfme

delfme commented Mar 5, 2023

Copy link
Copy Markdown

@bdero I think we still have a transform issue. Please see text “Reply to Leo “, that element is a flutter placeholder.

IMG_7805.MOV

@jonahwilliams

Copy link
Copy Markdown
Contributor

@delfme are you using an ImageFilter? If so, could you comment on flutter/flutter#121893 ? If not please file a new bug with details on how this happens.

@delfme

delfme commented Mar 6, 2023

Copy link
Copy Markdown

@jonahwilliams my bad, I eventually discovered this is just an eye trick 👍

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

Development

Successfully merging this pull request may close these issues.

[Impeller] text is transformed incorrectly

5 participants