From f510149da8d32f60f08d0a809eb037496079af3c Mon Sep 17 00:00:00 2001 From: Ruiqi Mao Date: Fri, 29 Jun 2018 14:32:21 -0400 Subject: skeletal animation support added to API and software backend SkCanvas::drawVertices now supports overloads that take an array of bone deformation matrices. SkVertices::MakeCopy and SkVertices::Builder now support two additional optional attributes, boneIndices and boneWeights. Bug: skia: Change-Id: I30a3b11691e7cdb13924907cc1401ff86d127aea Reviewed-on: https://skia-review.googlesource.com/137221 Reviewed-by: Brian Osman Reviewed-by: Robert Phillips Commit-Queue: Ruiqi Mao --- src/xps/SkXPSDevice.cpp | 6 ++++-- src/xps/SkXPSDevice.h | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/xps') diff --git a/src/xps/SkXPSDevice.cpp b/src/xps/SkXPSDevice.cpp index 36d1bd171f..797ff38483 100644 --- a/src/xps/SkXPSDevice.cpp +++ b/src/xps/SkXPSDevice.cpp @@ -1156,9 +1156,11 @@ void SkXPSDevice::drawPoints(SkCanvas::PointMode mode, draw(this, &SkDraw::drawPoints, mode, count, points, paint, this); } -void SkXPSDevice::drawVertices(const SkVertices* v, SkBlendMode blendMode, const SkPaint& paint) { +void SkXPSDevice::drawVertices(const SkVertices* v, const SkMatrix* bones, int boneCount, + SkBlendMode blendMode, const SkPaint& paint) { draw(this, &SkDraw::drawVertices, v->mode(), v->vertexCount(), v->positions(), v->texCoords(), - v->colors(), blendMode, v->indices(), v->indexCount(), paint); + v->colors(), v->boneIndices(), v->boneWeights(), blendMode, v->indices(), v->indexCount(), + paint, bones, boneCount); } void SkXPSDevice::drawPaint(const SkPaint& origPaint) { diff --git a/src/xps/SkXPSDevice.h b/src/xps/SkXPSDevice.h index 81e881ea82..03de5f1dcb 100644 --- a/src/xps/SkXPSDevice.h +++ b/src/xps/SkXPSDevice.h @@ -100,7 +100,8 @@ protected: void drawPosText(const void* text, size_t len, const SkScalar pos[], int scalarsPerPos, const SkPoint& offset, const SkPaint& paint) override; - void drawVertices(const SkVertices*, SkBlendMode, const SkPaint&) override; + void drawVertices(const SkVertices*, const SkMatrix* bones, int boneCount, SkBlendMode, + const SkPaint&) override; void drawDevice(SkBaseDevice*, int x, int y, const SkPaint&) override; -- cgit v1.2.3