[blink] Remove use of SkPathBuilder
This was an API refactor that never worked out. Switching back to
SkPath, so we can delete the code from Skia.
Bug: b/335431546
Change-Id: I12a6e55000d84b473da94c467f0b00d14c94aa3a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5463021
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Cr-Commit-Position: refs/heads/main@{#1288885}
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.cc b/third_party/blink/renderer/core/paint/box_border_painter.cc
index 3cc60bf..d260084 100644
--- a/third_party/blink/renderer/core/paint/box_border_painter.cc
+++ b/third_party/blink/renderer/core/paint/box_border_painter.cc
@@ -380,13 +380,13 @@
const gfx::PointF vertices[],
unsigned vertices_size,
bool antialiased) {
- SkPathBuilder path;
+ SkPath path;
path.moveTo(gfx::PointFToSkPoint(vertices[0]));
for (unsigned i = 1; i < vertices_size; ++i) {
path.lineTo(gfx::PointFToSkPoint(vertices[i]));
}
- context.ClipPath(path.detach(), antialiased ? kAntiAliased : kNotAntiAliased);
+ context.ClipPath(path, antialiased ? kAntiAliased : kNotAntiAliased);
}
void DrawDashedOrDottedBoxSide(GraphicsContext& context,
@@ -662,7 +662,7 @@
const Color& color,
bool antialias,
const AutoDarkMode& auto_dark_mode) {
- SkPathBuilder path;
+ SkPath path;
path.moveTo(gfx::PointFToSkPoint(quad[0]));
path.lineTo(gfx::PointFToSkPoint(quad[1]));
path.lineTo(gfx::PointFToSkPoint(quad[2]));
@@ -671,7 +671,7 @@
flags.setAntiAlias(antialias);
flags.setColor(color.toSkColor4f());
- context.DrawPath(path.detach(), flags, auto_dark_mode);
+ context.DrawPath(path, flags, auto_dark_mode);
}
void DrawSolidBoxSide(GraphicsContext& context,
diff --git a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
index ccf0c30..f6f3ecb 100644
--- a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
+++ b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
@@ -140,7 +140,7 @@
paint_flags.setStyle(cc::PaintFlags::kStroke_Style);
paint_flags.setStrokeWidth(std::ceil(paint_scale));
- SkPathBuilder line_path;
+ SkPath line_path;
AutoDarkMode auto_dark_mode(
PaintAutoDarkMode(GetScrollableArea().GetLayoutBox()->StyleRef(),
@@ -152,18 +152,19 @@
line_path.moveTo(points[2].x(), points[2].y());
line_path.lineTo(points[3].x(), points[3].y());
paint_flags.setColor(SkColorSetARGB(153, 0, 0, 0));
- context.DrawPath(line_path.detach(), paint_flags, auto_dark_mode);
+ context.DrawPath(line_path, paint_flags, auto_dark_mode);
// Draw a light line one pixel below the light line,
// to ensure contrast against a dark background
int v_offset = std::ceil(paint_scale);
int h_offset = on_left ? -v_offset : v_offset;
+ line_path.reset();
line_path.moveTo(points[0].x(), points[0].y() + v_offset);
line_path.lineTo(points[1].x() + h_offset, points[1].y());
line_path.moveTo(points[2].x(), points[2].y() + v_offset);
line_path.lineTo(points[3].x() + h_offset, points[3].y());
paint_flags.setColor(SkColorSetARGB(153, 255, 255, 255));
- context.DrawPath(line_path.detach(), paint_flags, auto_dark_mode);
+ context.DrawPath(line_path, paint_flags, auto_dark_mode);
}
bool ScrollableAreaPainter::PaintOverflowControls(
diff --git a/third_party/blink/renderer/core/paint/styleable_marker_painter.cc b/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
index 9eb34c2..4d149a5 100644
--- a/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
+++ b/third_party/blink/renderer/core/paint/styleable_marker_painter.cc
@@ -16,7 +16,7 @@
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_shader.h"
#include "third_party/blink/renderer/platform/graphics/styled_stroke_data.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
+#include "third_party/skia/include/core/SkPath.h"
namespace blink {
@@ -36,7 +36,7 @@
// Adjust the phase such that f' == 0 is "pixel"-centered
// (for optimal rasterization at native rez).
- SkPathBuilder path;
+ SkPath path;
path.moveTo(kMarkerWidth * -3 / 8, kMarkerHeight * 3 / 4);
path.cubicTo(kMarkerWidth * -1 / 8, kMarkerHeight * 3 / 4,
kMarkerWidth * -1 / 8, kMarkerHeight * 1 / 4,
@@ -56,7 +56,7 @@
PaintRecorder recorder;
recorder.beginRecording();
- recorder.getRecordingCanvas()->drawPath(path.detach(), flags);
+ recorder.getRecordingCanvas()->drawPath(path, flags);
return recorder.finishRecordingAsPicture();
}
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index 46bf928..128349c 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -79,7 +79,7 @@
#include "third_party/blink/renderer/platform/image-encoders/image_encoder_utils.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
+#include "third_party/skia/include/core/SkPath.h"
#include "ui/gfx/geometry/quad_f.h"
#include "ui/gfx/geometry/skia_conversions.h"
@@ -1409,11 +1409,11 @@
DCHECK_EQ(flags->getStyle(), cc::PaintFlags::kStroke_Style);
if ((rect.width() > 0) != (rect.height() > 0)) {
// When stroking, we must skip the zero-dimension segments
- SkPathBuilder path;
+ SkPath path;
path.moveTo(rect.x(), rect.y());
path.lineTo(rect.right(), rect.bottom());
path.close();
- canvas->drawPath(path.detach(), *flags);
+ canvas->drawPath(path, *flags);
return;
}
canvas->drawRect(gfx::RectFToSkRect(rect), *flags);
diff --git a/third_party/blink/renderer/platform/graphics/graphics_context.cc b/third_party/blink/renderer/platform/graphics/graphics_context.cc
index e31b5e0f..a7a4cac 100644
--- a/third_party/blink/renderer/platform/graphics/graphics_context.cc
+++ b/third_party/blink/renderer/platform/graphics/graphics_context.cc
@@ -963,11 +963,11 @@
} else if (valid_w || valid_h) {
// we are expected to respect the lineJoin, so we can't just call
// drawLine -- we have to create a path that doubles back on itself.
- SkPathBuilder path;
+ SkPath path;
path.moveTo(r.fLeft, r.fTop);
path.lineTo(r.fRight, r.fBottom);
path.close();
- DrawPath(path.detach(), flags, auto_dark_mode);
+ DrawPath(path, flags, auto_dark_mode);
}
}
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
index f1a1f18..e80d53c0 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_controller_test.cc
@@ -1879,14 +1879,13 @@
return;
DrawingRecorder recorder(context, client, type, gfx::Rect(0, 0, 100, 100));
- SkPathBuilder builder;
- builder.moveTo(0, 0);
- builder.lineTo(0, 100);
- builder.lineTo(50, 50);
- builder.lineTo(100, 100);
- builder.lineTo(100, 0);
- builder.close();
- SkPath path = builder.detach();
+ SkPath path;
+ path.moveTo(0, 0);
+ path.lineTo(0, 100);
+ path.lineTo(50, 50);
+ path.lineTo(100, 100);
+ path.lineTo(100, 0);
+ path.close();
cc::PaintFlags flags;
flags.setAntiAlias(true);
for (unsigned i = 0; i < count; i++)
diff --git a/third_party/blink/renderer/platform/graphics/path.h b/third_party/blink/renderer/platform/graphics/path.h
index 9dfd597..6a93081 100644
--- a/third_party/blink/renderer/platform/graphics/path.h
+++ b/third_party/blink/renderer/platform/graphics/path.h
@@ -37,7 +37,6 @@
#include "third_party/blink/renderer/platform/wtf/forward.h"
#include "third_party/blink/renderer/platform/wtf/ref_counted.h"
#include "third_party/skia/include/core/SkPath.h"
-#include "third_party/skia/include/core/SkPathBuilder.h"
#include "third_party/skia/include/core/SkPathMeasure.h"
#include "ui/gfx/geometry/transform.h"