diff --git a/third_party/WebKit/Source/core/paint/BoxBorderPainter.cpp b/third_party/WebKit/Source/core/paint/BoxBorderPainter.cpp index 3c1123eed6e733..0328ef6eb288a9 100644 --- a/third_party/WebKit/Source/core/paint/BoxBorderPainter.cpp +++ b/third_party/WebKit/Source/core/paint/BoxBorderPainter.cpp @@ -362,6 +362,19 @@ struct OpacityGroup { unsigned alpha; }; +void clipQuad(GraphicsContext& context, const FloatPoint quad[], bool antialiased) +{ + SkPath path; + path.incReserve(4); + path.moveTo(WebCoreFloatToSkScalar(quad[0].x()), + WebCoreFloatToSkScalar(quad[0].y())); + for (size_t i = 1; i < 4; ++i) { + path.lineTo(WebCoreFloatToSkScalar(quad[i].x()), + WebCoreFloatToSkScalar(quad[i].y())); + } + context.clipPath(path, antialiased ? AntiAliased : NotAntiAliased); +} + } // anonymous namespace // Holds edges grouped by opacity and sorted in paint order. @@ -1155,7 +1168,7 @@ void BoxBorderPainter::clipBorderSidePolygon(GraphicsContext& graphicsContext, B } if (firstMiter == secondMiter) { - graphicsContext.clipPolygon(4, quad, firstMiter == SoftMiter); + clipQuad(graphicsContext, quad, firstMiter == SoftMiter); return; } @@ -1188,7 +1201,7 @@ void BoxBorderPainter::clipBorderSidePolygon(GraphicsContext& graphicsContext, B firstQuad[1] = quad[1]; firstQuad[2] = FloatPoint(quad[3].x() + r2 * ax, quad[3].y() + r2 * ay); firstQuad[3] = quad[3]; - graphicsContext.clipPolygon(4, firstQuad, firstMiter == SoftMiter); + clipQuad(graphicsContext, firstQuad, firstMiter == SoftMiter); } if (secondMiter != NoMiter) { @@ -1197,7 +1210,7 @@ void BoxBorderPainter::clipBorderSidePolygon(GraphicsContext& graphicsContext, B secondQuad[1] = FloatPoint(quad[0].x() - r1 * cx, quad[0].y() - r1 * cy); secondQuad[2] = quad[2]; secondQuad[3] = quad[3]; - graphicsContext.clipPolygon(4, secondQuad, secondMiter == SoftMiter); + clipQuad(graphicsContext, secondQuad, secondMiter == SoftMiter); } } diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp index b5ea4ac8f76eed..75f2d840c50cd9 100644 --- a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp +++ b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp @@ -1104,18 +1104,6 @@ void GraphicsContext::clipOut(const Path& pathToClip) path.toggleInverseFillType(); } -void GraphicsContext::clipPolygon(size_t numPoints, const FloatPoint* points, bool antialiased) -{ - if (contextDisabled()) - return; - - ASSERT(numPoints > 2); - - SkPath path; - setPathFromPoints(&path, numPoints, points); - clipPath(path, antialiased ? AntiAliased : NotAntiAliased); -} - void GraphicsContext::clipOutRoundedRect(const FloatRoundedRect& rect) { if (contextDisabled()) diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsContext.h b/third_party/WebKit/Source/platform/graphics/GraphicsContext.h index ee4f3ef2560650..708f58d99004e4 100644 --- a/third_party/WebKit/Source/platform/graphics/GraphicsContext.h +++ b/third_party/WebKit/Source/platform/graphics/GraphicsContext.h @@ -180,7 +180,6 @@ class PLATFORM_EXPORT GraphicsContext { void clipOut(const Path&); void clipOutRoundedRect(const FloatRoundedRect&); void clipPath(const SkPath&, AntiAliasingMode = NotAntiAliased, SkRegion::Op = SkRegion::kIntersect_Op); - void clipPolygon(size_t numPoints, const FloatPoint*, bool antialias); void clipRect(const SkRect&, AntiAliasingMode = NotAntiAliased, SkRegion::Op = SkRegion::kIntersect_Op); void drawText(const Font&, const TextRunPaintInfo&, const FloatPoint&);