@@ -2526,5 +2526,37 @@ TEST_P(AiksTest, CanDrawPointsWithTextureMap) {
25262526 ASSERT_TRUE (OpenPlaygroundHere (canvas.EndRecordingAsPicture ()));
25272527}
25282528
2529+ TEST_P (AiksTest, TextForegroundShaderWithTransform) {
2530+ auto mapping = OpenFixtureAsSkData (" Roboto-Regular.ttf" );
2531+ ASSERT_NE (mapping, nullptr );
2532+
2533+ Scalar font_size = 100 ;
2534+ SkFont sk_font (SkTypeface::MakeFromData (mapping), font_size);
2535+
2536+ Paint text_paint;
2537+ text_paint.color = Color::Blue ();
2538+
2539+ std::vector<Color> colors = {Color{0.9568 , 0.2627 , 0.2118 , 1.0 },
2540+ Color{0.1294 , 0.5882 , 0.9529 , 1.0 }};
2541+ std::vector<Scalar> stops = {
2542+ 0.0 ,
2543+ 1.0 ,
2544+ };
2545+ text_paint.color_source = ColorSource::MakeLinearGradient (
2546+ {0 , 0 }, {100 , 100 }, std::move (colors), std::move (stops),
2547+ Entity::TileMode::kRepeat , {});
2548+
2549+ Canvas canvas;
2550+ canvas.Translate ({100 , 100 });
2551+ canvas.Rotate (Radians (kPi / 4 ));
2552+
2553+ auto blob = SkTextBlob::MakeFromString (" Hello" , sk_font);
2554+ ASSERT_NE (blob, nullptr );
2555+ auto frame = TextFrameFromTextBlob (blob);
2556+ canvas.DrawTextFrame (frame, Point (), text_paint);
2557+
2558+ ASSERT_TRUE (OpenPlaygroundHere (canvas.EndRecordingAsPicture ()));
2559+ }
2560+
25292561} // namespace testing
25302562} // namespace impeller
0 commit comments