aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/addarc.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2015-02-01 19:01:04 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-01 19:01:04 -0800
commitd9adfe6a223955bc69c8c7661ab8e0a078afbc32 (patch)
treeb3ae977babf890649bce0538e6b6cb766a948219 /gm/addarc.cpp
parent47471cf19c1b386212ab0401190ac40cdeb95d1f (diff)
allow GMs to animate
Diffstat (limited to 'gm/addarc.cpp')
-rw-r--r--gm/addarc.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/gm/addarc.cpp b/gm/addarc.cpp
index 209fb59aef..1386cdd0e7 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 @@ protected:
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; )