| Index: gm/arcofzorro.cpp
|
| ===================================================================
|
| --- gm/arcofzorro.cpp (revision 0)
|
| +++ gm/arcofzorro.cpp (revision 0)
|
| @@ -0,0 +1,83 @@
|
| +/*
|
| + * Copyright 2013 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "gm.h"
|
| +#include "SkRandom.h"
|
| +
|
| +namespace skiagm {
|
| +
|
| +// This GM draws a lot of arcs in a 'Z' shape. It particularly exercises
|
| +// the 'drawArc' code near a singularly of its processing (i.e., near the
|
| +// edge of one of its underlying quads).
|
| +class ArcOfZorroGM : public GM {
|
| +public:
|
| + ArcOfZorroGM() {
|
| + this->setBGColor(0xFFCCCCCC);
|
| + }
|
| +
|
| +protected:
|
| + virtual SkString onShortName() SK_OVERRIDE {
|
| + return SkString("arcofzorro");
|
| + }
|
| +
|
| + virtual SkISize onISize() SK_OVERRIDE {
|
| + return make_isize(1000, 1000);
|
| + }
|
| +
|
| + virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
|
| + SkMWCRandom rand;
|
| +
|
| + SkRect rect = SkRect::MakeXYWH(10, 10, 200, 200);
|
| +
|
| + SkPaint p;
|
| +
|
| + p.setStyle(SkPaint::kStroke_Style);
|
| + p.setStrokeWidth(35);
|
| + int xOffset = 0, yOffset = 0;
|
| + int direction = 0;
|
| +
|
| + for (float arc = 134.0f; arc < 136.0f; arc += 0.01f) {
|
| + SkColor color = rand.nextU();
|
| + color |= 0xff000000;
|
| + p.setColor(color);
|
| +
|
| + canvas->save();
|
| + canvas->translate(SkIntToScalar(xOffset), SkIntToScalar(yOffset));
|
| + canvas->drawArc(rect, 0, arc, false, p);
|
| + canvas->restore();
|
| +
|
| + switch (direction) {
|
| + case 0:
|
| + xOffset += 10;
|
| + if (xOffset >= 700) {
|
| + direction = 1;
|
| + }
|
| + break;
|
| + case 1:
|
| + xOffset -= 10;
|
| + yOffset += 10;
|
| + if (xOffset < 50) {
|
| + direction = 2;
|
| + }
|
| + break;
|
| + case 2:
|
| + xOffset += 10;
|
| + break;
|
| + }
|
| + }
|
| +
|
| + }
|
| +
|
| +private:
|
| + typedef GM INHERITED;
|
| +};
|
| +
|
| +//////////////////////////////////////////////////////////////////////////////
|
| +
|
| +DEF_GM( return SkNEW(ArcOfZorroGM); )
|
| +
|
| +}
|
|
|
| Property changes on: gm\arcofzorro.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|