Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index c6b57396e0dcf08a4e81d5160c0aa019b027a4fb..574fefbec163a66189e9e6346cdc30b7eec86a77 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -2254,12 +2254,16 @@ void SkCanvas::drawVertices(VertexMode vmode, int vertexCount, |
LOOPER_END |
} |
-void SkCanvas::drawPatch(const SkPatch& patch, const SkPaint& paint) { |
+void SkCanvas::drawPatch(const SkPoint cubics[12], const SkColor colors[4], |
+ const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { |
+ if (NULL == cubics) { |
+ return; |
+ } |
// Since a patch is always within the convex hull of the control points, we discard it when its |
// bounding rectangle is completely outside the current clip. |
SkRect bounds; |
- bounds.set(patch.getControlPoints(), SkPatch::kNumCtrlPts); |
+ bounds.set(cubics, SkPatch::kNumCtrlPts); |
if (this->quickReject(bounds)) { |
return; |
} |
@@ -2267,7 +2271,7 @@ void SkCanvas::drawPatch(const SkPatch& patch, const SkPaint& paint) { |
LOOPER_BEGIN(paint, SkDrawFilter::kPath_Type, NULL) |
while (iter.next()) { |
- iter.fDevice->drawPatch(iter, patch, paint); |
+ iter.fDevice->drawPatch(iter, cubics, colors, texCoords, xmode, paint); |
} |
LOOPER_END |