From 07fce2f8f4245302ec4e72f2b0f13ed14740bf87 Mon Sep 17 00:00:00 2001 From: Brandon DeRosier Date: Fri, 13 Sep 2024 22:34:55 -0700 Subject: [PATCH] [Impeller] desktop: Add missing dispatch for TextFrameDispatcher in embedder view. (flutter/engine#55197) --- .../flutter/shell/platform/embedder/BUILD.gn | 3 +- .../embedder/embedder_external_view.cc | 1 + .../platform/embedder/fixtures/README.md | 4 +- ...impeller_gl_test.png => impeller_test.png} | Bin .../embedder/fixtures/impeller_text_test.png | Bin 0 -> 3325 bytes .../platform/embedder/fixtures/main.dart | 28 ++++++- .../embedder/tests/embedder_gl_unittests.cc | 4 +- .../tests/embedder_metal_unittests.mm | 78 ++++++++++++++++++ 8 files changed, 112 insertions(+), 6 deletions(-) rename engine/src/flutter/shell/platform/embedder/fixtures/{impeller_gl_test.png => impeller_test.png} (100%) create mode 100644 engine/src/flutter/shell/platform/embedder/fixtures/impeller_text_test.png diff --git a/engine/src/flutter/shell/platform/embedder/BUILD.gn b/engine/src/flutter/shell/platform/embedder/BUILD.gn index 39ca8dc757..38c7e2db98 100644 --- a/engine/src/flutter/shell/platform/embedder/BUILD.gn +++ b/engine/src/flutter/shell/platform/embedder/BUILD.gn @@ -242,7 +242,8 @@ test_fixtures("fixtures") { "fixtures/dpr_noxform.png", "fixtures/dpr_xform.png", "fixtures/gradient.png", - "fixtures/impeller_gl_test.png", + "fixtures/impeller_test.png", + "fixtures/impeller_text_test.png", "fixtures/vk_dpr_noxform.png", "fixtures/vk_gradient.png", "fixtures/gradient_metal.png", diff --git a/engine/src/flutter/shell/platform/embedder/embedder_external_view.cc b/engine/src/flutter/shell/platform/embedder/embedder_external_view.cc index 8aa524359d..1111e8a7a8 100644 --- a/engine/src/flutter/shell/platform/embedder/embedder_external_view.cc +++ b/engine/src/flutter/shell/platform/embedder/embedder_external_view.cc @@ -137,6 +137,7 @@ bool EmbedderExternalView::Render(const EmbedderRenderTarget& render_target, impeller::TextFrameDispatcher collector(aiks_context->GetContentContext(), impeller::Matrix()); + display_list->Dispatch(collector, sk_cull_rect); impeller::ExperimentalDlDispatcher impeller_dispatcher( aiks_context->GetContentContext(), *impeller_target, diff --git a/engine/src/flutter/shell/platform/embedder/fixtures/README.md b/engine/src/flutter/shell/platform/embedder/fixtures/README.md index b68fc603cd..eed3fe6b86 100644 --- a/engine/src/flutter/shell/platform/embedder/fixtures/README.md +++ b/engine/src/flutter/shell/platform/embedder/fixtures/README.md @@ -71,9 +71,9 @@ $ $ENGINE/out/$TARGET/embedder_unittests --gtest_filter="EmbedderTest.VerifyB143 # Or, a suite of tests: $ $ENGINE/out/$TARGET/embedder_unittests --gtest_filter="EmbedderTest.*" -# 3. Now, copy the output to the golden file: +# 3. Now, copy the output to the golden file (notice the "actual_" prefix): $ cp \ - $ENGINE/out/$TARGET/gen/flutter/shell/platform/embedder/assets/expectation_verifyb143464703_soft_noxform.png \ + $ENGINE/out/$TARGET/gen/flutter/shell/platform/embedder/assets/actual_verifyb143464703_soft_noxform.png \ $ENGINE/flutter/shell/platform/embedder/fixtures/verifyb143464703_soft_noxform.png ``` diff --git a/engine/src/flutter/shell/platform/embedder/fixtures/impeller_gl_test.png b/engine/src/flutter/shell/platform/embedder/fixtures/impeller_test.png similarity index 100% rename from engine/src/flutter/shell/platform/embedder/fixtures/impeller_gl_test.png rename to engine/src/flutter/shell/platform/embedder/fixtures/impeller_test.png diff --git a/engine/src/flutter/shell/platform/embedder/fixtures/impeller_text_test.png b/engine/src/flutter/shell/platform/embedder/fixtures/impeller_text_test.png new file mode 100644 index 0000000000000000000000000000000000000000..72ee258c101a2e84c4b2f92f0758b4bb87ce7ad4 GIT binary patch literal 3325 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>iV_;yIRn}C%z`(##?Bp53!NI{%!;#X# zz`(P`)5S5QV$R#U`6uS4%CdjB|Mc3OqO@WW!`0$zs}{~ST&yY&0_l+l4Yv2mD#@`RSR8_?&k($5b;t?`;p+saoka zY4zkeyG8z9&6L`0r}y@Lr7r_R#0C}qw7Tf(p9@vqTXz0i=kcj4a--^r>fH06+g!KV zD=t@gU0p9d-Qf6Ssokz$>Jukj?>}lcE#+NEtT02vfBDn?iTBIHuAWWacwc|h`q!&o zT@U@*EV*&{lC9q=CKa!Gb-w#e(#c{g-fdx5t5?6uZoV-&^y~D?GlUr!e6EE%98;G+ z{Hgw*xc$kkp8Jf#{+(1Y|9bs9e^>yY+D()AHP>UOKk2*of1k>AzF&J5T;FSS(tq+D zbJg$HzgH-Y8k~?>8?ND`_o&M*KBX6sqb7F|2Sb%^kkdb zV>e>wKk?qX|M%oK60401WvYID`)BvO>gQ9_h?f$3+RMNG==GGFIYpR(VNRI3CF9SG zNwvvO?|T%v*Z-Ymmw01xO7tXC;Uw+fXTSVY$@ko}`MyW|&EJ)o_Vc|zHL8UBoXFKX zdHdJv?cdDu{WmTBzCYh-_s^mz`yJ1&dajf9O<{YR_i|(Qq?oJm^@+!BEcJJ|ccb64 zC{usFDc|Bbd45Halg@wtywy`r$|q-=YGq>nX6=&)Z_c-2V3@;J%T%OsvYf5HocENt z4dct_)sybng*|VHm~{Gg@0ZW)8~fF7#;f}|Y&(CV)`D^8()BEBUOa!UcGG6*+X}ze z?dJb&%bfSSd2iY^{k_DL{MQ>zh1V6XSYM^{`uXWeHWQw7bIY{9-TR02Z;k7uv!3VP zJ(rh?f9vt-p$hx5UTFpfog*vnFn{`RBd%lryhGWcp}DV)$9lSLEWfr<`h_w3*SZp+ z+Iyj)@7J$t{+pfjJ>=?lv5B`o%;FEbdNcIvmQ}YdB!~CzV+##E|MGZmsOkIbM^Y=v@}2T?%gPBBh~-vt6shDuDH*@P|y@? z$@nubJNLTM?RgtJ%vS&U_|Wl3fRZ(UgwmUEIMQ49ktt<@PyK>dG@4nCOuUU0{ zZc5(a+20p8U)TQqF}*e@AoT0)RaIM7@%g@dpP&5PpU3X>%EuR?s&!8OtUa`8>#BV* zq5Hiy?cDn9N6YKK8&(-DoS6$n7t&b;+Sxo2TtyNW9ww5J_-ktGe)~a72lSx`*wOTRs?yE8MzdD7g_(ti~+r_0)T5es=eKr@ZZ9SM{swpMPC%{x@?&lwsaJ8}+QUvg=mmhhClg*WAS{?CSGX zugpWYR(V}sTbul2nab`}S>B<&^Hj{TW$p!pw*O}PRvP;CliYt-d$|>>($#NHd=gn& zqkl$uajg;q!w31)M*o9V<+Alx-o9;izwyqqD1Xv}Y!ZY&nF+K){f7xG-AGa&^s`TDe z6t?F0`B(AQQLFBReU;aU@wi)A9ObZEbn?6!)1_x;UA(+OZHm84`@i4H!s;S_KU*yB z^A}2A_kucQ>!>NCAut*OqaiRF0;3@?XhPsmcRhoezOd1z1