diff options
Diffstat (limited to 'src/core/SkCanvas.cpp')
-rw-r--r-- | src/core/SkCanvas.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index b297f98156..bf32aafae9 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -1702,13 +1702,27 @@ void SkCanvas::drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, RETURN_ON_NULL(vertices); // We expect fans to be converted to triangles when building or deserializing SkVertices. SkASSERT(vertices->mode() != SkVertices::kTriangleFan_VertexMode); - this->onDrawVerticesObject(vertices.get(), mode, paint); + this->onDrawVerticesObject(vertices.get(), nullptr, 0, mode, paint); } void SkCanvas::drawVertices(const SkVertices* vertices, SkBlendMode mode, const SkPaint& paint) { TRACE_EVENT0("skia", TRACE_FUNC); RETURN_ON_NULL(vertices); - this->onDrawVerticesObject(vertices, mode, paint); + this->onDrawVerticesObject(vertices, nullptr, 0, mode, paint); +} + +void SkCanvas::drawVertices(const sk_sp<SkVertices> vertices, const SkMatrix* bones, int boneCount, + SkBlendMode mode, const SkPaint& paint) { + TRACE_EVENT0("skia", TRACE_FUNC); + RETURN_ON_NULL(vertices); + this->onDrawVerticesObject(vertices.get(), bones, boneCount, mode, paint); +} + +void SkCanvas::drawVertices(const SkVertices* vertices, const SkMatrix* bones, int boneCount, + SkBlendMode mode, const SkPaint& paint) { + TRACE_EVENT0("skia", TRACE_FUNC); + RETURN_ON_NULL(vertices); + this->onDrawVerticesObject(vertices, bones, boneCount, mode, paint); } void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { @@ -2597,13 +2611,13 @@ void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, this->onDrawTextBlob(blob, x, y, paint); } -void SkCanvas::onDrawVerticesObject(const SkVertices* vertices, SkBlendMode bmode, - const SkPaint& paint) { +void SkCanvas::onDrawVerticesObject(const SkVertices* vertices, const SkMatrix* bones, + int boneCount, SkBlendMode bmode, const SkPaint& paint) { LOOPER_BEGIN(paint, SkDrawFilter::kPath_Type, nullptr) while (iter.next()) { // In the common case of one iteration we could std::move vertices here. - iter.fDevice->drawVertices(vertices, bmode, looper.paint()); + iter.fDevice->drawVertices(vertices, bones, boneCount, bmode, looper.paint()); } LOOPER_END |