Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1569)

Unified Diff: Source/platform/graphics/GraphicsContext.cpp

Issue 657023006: GC::drawConvexPolygon() & friends cleanup (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: speculative RenderThemeChromiumMac fix Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/platform/graphics/GraphicsContext.cpp
diff --git a/Source/platform/graphics/GraphicsContext.cpp b/Source/platform/graphics/GraphicsContext.cpp
index c75c0cf53327cf7d8f54e8286c2eb75ceeb637f3..01f739b00501fdc5124f7c289ecee95a9ca217b2 100644
--- a/Source/platform/graphics/GraphicsContext.cpp
+++ b/Source/platform/graphics/GraphicsContext.cpp
@@ -572,23 +572,22 @@ void GraphicsContext::drawDisplayList(DisplayList* displayList)
restore();
}
-void GraphicsContext::drawConvexPolygon(size_t numPoints, const FloatPoint* points, bool shouldAntialias)
+void GraphicsContext::fillPolygon(size_t numPoints, const FloatPoint* points, const Color& color,
+ bool shouldAntialias)
{
if (contextDisabled())
return;
- if (numPoints <= 1)
- return;
+ ASSERT(numPoints > 2);
SkPath path;
- setPathFromConvexPoints(&path, numPoints, points);
+ setPathFromPoints(&path, numPoints, points);
SkPaint paint(immutableState()->fillPaint());
paint.setAntiAlias(shouldAntialias);
- drawPath(path, paint);
+ paint.setColor(color.rgb());
- if (strokeStyle() != NoStroke)
- drawPath(path, immutableState()->strokePaint());
+ drawPath(path, paint);
}
float GraphicsContext::prepareFocusRingPaint(SkPaint& paint, const Color& color, int width) const
@@ -1532,16 +1531,15 @@ void GraphicsContext::clipPath(const Path& pathToClip, WindRule clipRule)
path.setFillType(previousFillType);
}
-void GraphicsContext::clipConvexPolygon(size_t numPoints, const FloatPoint* points, bool antialiased)
+void GraphicsContext::clipPolygon(size_t numPoints, const FloatPoint* points, bool antialiased)
{
if (contextDisabled())
return;
- if (numPoints <= 1)
- return;
+ ASSERT(numPoints > 2);
SkPath path;
- setPathFromConvexPoints(&path, numPoints, points);
+ setPathFromPoints(&path, numPoints, points);
clipPath(path, antialiased ? AntiAliased : NotAntiAliased);
}
@@ -1798,7 +1796,7 @@ PassOwnPtr<ImageBuffer> GraphicsContext::createRasterBuffer(const IntSize& size,
return buffer.release();
}
-void GraphicsContext::setPathFromConvexPoints(SkPath* path, size_t numPoints, const FloatPoint* points)
+void GraphicsContext::setPathFromPoints(SkPath* path, size_t numPoints, const FloatPoint* points)
{
path->incReserve(numPoints);
path->moveTo(WebCoreFloatToSkScalar(points[0].x()),
@@ -1807,17 +1805,6 @@ void GraphicsContext::setPathFromConvexPoints(SkPath* path, size_t numPoints, co
path->lineTo(WebCoreFloatToSkScalar(points[i].x()),
WebCoreFloatToSkScalar(points[i].y()));
}
-
- /* The code used to just blindly call this
- path->setIsConvex(true);
- But webkit can sometimes send us non-convex 4-point values, so we mark the path's
- convexity as unknown, so it will get computed by skia at draw time.
- See crbug.com 108605
- */
- SkPath::Convexity convexity = SkPath::kConvex_Convexity;
- if (numPoints == 4)
- convexity = SkPath::kUnknown_Convexity;
- path->setConvexity(convexity);
}
void GraphicsContext::setRadii(SkVector* radii, IntSize topLeft, IntSize topRight, IntSize bottomRight, IntSize bottomLeft)
« no previous file with comments | « Source/platform/graphics/GraphicsContext.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698