Index: src/core/SkDevice.cpp |
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp |
index 6ceaffebb324a5554c57e089cfd711a3ded9ed6e..50755c94ed5e65999574ec120ff3af5610344960 100644 |
--- a/src/core/SkDevice.cpp |
+++ b/src/core/SkDevice.cpp |
@@ -79,15 +79,17 @@ void SkBaseDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer, |
this->drawPath(draw, path, paint, preMatrix, pathIsMutable); |
} |
-void SkBaseDevice::drawPatch(const SkDraw& draw, const SkPatch& patch, const SkPaint& paint) { |
- SkPatch::VertexData data; |
+void SkBaseDevice::drawPatch(const SkDraw& draw, const SkPoint cubics[12], const SkColor colors[4], |
+ const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { |
+ SkPatchUtils::VertexData data; |
- SkISize lod = SkPatchUtils::GetLevelOfDetail(patch, draw.fMatrix); |
+ SkISize lod = SkPatchUtils::GetLevelOfDetail(cubics, draw.fMatrix); |
// It automatically adjusts lodX and lodY in case it exceeds the number of indices. |
- patch.getVertexData(&data, lod.width(), lod.height()); |
+ SkPatchUtils::getVertexData(&data, cubics, colors, texCoords, lod.width(), lod.height()); |
this->drawVertices(draw, SkCanvas::kTriangles_VertexMode, data.fVertexCount, data.fPoints, |
- data.fTexCoords, data.fColors, NULL, data.fIndices, data.fIndexCount, paint); |
+ data.fTexCoords, data.fColors, xmode, data.fIndices, data.fIndexCount, |
+ paint); |
} |
bool SkBaseDevice::readPixels(const SkImageInfo& info, void* dstP, size_t rowBytes, int x, int y) { |