diff options
Diffstat (limited to 'gm/skinning.cpp')
-rw-r--r-- | gm/skinning.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gm/skinning.cpp b/gm/skinning.cpp index 101522fa48..9b59594dc4 100644 --- a/gm/skinning.cpp +++ b/gm/skinning.cpp @@ -70,10 +70,11 @@ static void swap(const SkMatrix** x, const SkMatrix** y) { class SkinningGM : public GM { public: - SkinningGM(bool deformUsingCPU) + SkinningGM(bool deformUsingCPU, bool cache) : fPaint() , fVertices(nullptr) , fDeformUsingCPU(deformUsingCPU) + , fCache(cache) {} protected: @@ -86,6 +87,9 @@ protected: if (fDeformUsingCPU) { name.append("_cpu"); } + if (fCache) { + name.append("_cached"); + } return name; } @@ -103,7 +107,7 @@ protected: kBoneWeights, kIndexCount, kIndices, - false); // Keep the vertices non-volatile. + !fCache); } void onDraw(SkCanvas* canvas) override { @@ -176,7 +180,8 @@ private: nullptr, kColors, kIndexCount, - kIndices); + kIndices, + !fCache); canvas->drawVertices(vertices.get(), SkBlendMode::kSrc, fPaint); @@ -218,11 +223,14 @@ private: SkPaint fPaint; sk_sp<SkVertices> fVertices; bool fDeformUsingCPU; + bool fCache; typedef GM INHERITED; }; ///////////////////////////////////////////////////////////////////////////////////// -DEF_GM(return new SkinningGM(true);) -DEF_GM(return new SkinningGM(false);) +DEF_GM(return new SkinningGM(true, true);) +DEF_GM(return new SkinningGM(false, true);) +DEF_GM(return new SkinningGM(true, false);) +DEF_GM(return new SkinningGM(false, false);) |