浏览代码

LibWeb: Use repeat tile mode if repeating length specified

...for radial gradient in Skia painter.
Aliaksandr Kalenik 1 年之前
父节点
当前提交
4aba38e21f
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      Userland/Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp

+ 5 - 1
Userland/Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp

@@ -1200,7 +1200,11 @@ CommandResult DisplayListPlayerSkia::paint_radial_gradient(PaintRadialGradient c
     // so instead we apply scale matrix
     // so instead we apply scale matrix
     matrix.setScale(size.width() / size.height(), 1.0f, center.x(), center.y());
     matrix.setScale(size.width() / size.height(), 1.0f, center.x(), center.y());
 
 
-    auto shader = SkGradientShader::MakeRadial(center, size.height(), colors.data(), positions.data(), positions.size(), SkTileMode::kClamp, 0, &matrix);
+    SkTileMode tile_mode = SkTileMode::kClamp;
+    if (repeat_length.has_value())
+        tile_mode = SkTileMode::kRepeat;
+
+    auto shader = SkGradientShader::MakeRadial(center, size.height(), colors.data(), positions.data(), positions.size(), tile_mode, 0, &matrix);
 
 
     SkPaint paint;
     SkPaint paint;
     paint.setShader(shader);
     paint.setShader(shader);