diff options
Diffstat (limited to 'gm/addarc.cpp')
-rw-r--r-- | gm/addarc.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gm/addarc.cpp b/gm/addarc.cpp new file mode 100644 index 0000000000..209fb59aef --- /dev/null +++ b/gm/addarc.cpp @@ -0,0 +1,48 @@ +/* + * Copyright 2015 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 "SkCanvas.h" +#include "SkRandom.h" + +class AddArcGM : public skiagm::GM { +protected: + SkString onShortName() SK_OVERRIDE { return SkString("addarc"); } + + SkISize onISize() SK_OVERRIDE { return SkISize::Make(1040, 1040); } + + void onDraw(SkCanvas* canvas) SK_OVERRIDE { + canvas->translate(20, 20); + + SkRect r = SkRect::MakeWH(1000, 1000); + + SkPaint paint; + paint.setAntiAlias(true); + paint.setStyle(SkPaint::kStroke_Style); + paint.setStrokeWidth(15); + + const SkScalar inset = paint.getStrokeWidth() + 4; + const SkScalar sweepAngle = 345; + SkRandom rand; + + while (r.width() > paint.getStrokeWidth() * 3) { + paint.setColor(rand.nextU() | (0xFF << 24)); + SkScalar startAngle = rand.nextUScalar1() * 360; + + SkPath path; + path.addArc(r, startAngle, sweepAngle); + canvas->drawPath(path, paint); + + r.inset(inset, inset); + + } + } + +private: + typedef skiagm::GM INHERITED; +}; +DEF_GM( return new AddArcGM; ) |