allow GMs to animate
BUG=skia:
Review URL: https://codereview.chromium.org/888283002
diff --git a/gm/addarc.cpp b/gm/addarc.cpp
index 209fb59..1386cdd 100644
--- a/gm/addarc.cpp
+++ b/gm/addarc.cpp
@@ -10,6 +10,9 @@
#include "SkRandom.h"
class AddArcGM : public skiagm::GM {
+public:
+ AddArcGM() : fRotate(0) {}
+
protected:
SkString onShortName() SK_OVERRIDE { return SkString("addarc"); }
@@ -29,20 +32,30 @@
const SkScalar sweepAngle = 345;
SkRandom rand;
+ SkScalar sign = 1;
while (r.width() > paint.getStrokeWidth() * 3) {
paint.setColor(rand.nextU() | (0xFF << 24));
SkScalar startAngle = rand.nextUScalar1() * 360;
+ SkScalar speed = SkScalarSqrt(16 / r.width()) * 0.5f;
+ startAngle += fRotate * 360 * speed * sign;
+
SkPath path;
path.addArc(r, startAngle, sweepAngle);
canvas->drawPath(path, paint);
r.inset(inset, inset);
-
+ sign = -sign;
}
}
+ bool onAnimatePulse(SkMSec curr, SkMSec prev) SK_OVERRIDE {
+ fRotate = SkDoubleToScalar(fmod(curr * 0.001, 360));
+ return true;
+ }
+
private:
+ SkScalar fRotate;
typedef skiagm::GM INHERITED;
};
DEF_GM( return new AddArcGM; )