aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/skinning.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gm/skinning.cpp')
-rw-r--r--gm/skinning.cpp18
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);)