diff options
author | reed <reed@chromium.org> | 2015-02-01 19:01:04 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-01 19:01:04 -0800 |
commit | d9adfe6a223955bc69c8c7661ab8e0a078afbc32 (patch) | |
tree | b3ae977babf890649bce0538e6b6cb766a948219 /gm/addarc.cpp | |
parent | 47471cf19c1b386212ab0401190ac40cdeb95d1f (diff) |
allow GMs to animate
BUG=skia:
Review URL: https://codereview.chromium.org/888283002
Diffstat (limited to 'gm/addarc.cpp')
-rw-r--r-- | gm/addarc.cpp | 15 |
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; ) |