diff options
Diffstat (limited to 'gm/drawregion.cpp')
-rw-r--r-- | gm/drawregion.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gm/drawregion.cpp b/gm/drawregion.cpp new file mode 100644 index 0000000000..1e9d6c55e2 --- /dev/null +++ b/gm/drawregion.cpp @@ -0,0 +1,54 @@ +/* + * Copyright 2016 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" + +/** + * This is very similar to the RectGrid macrobench in Android. + */ +class DrawRegionGM : public skiagm::GM { +public: + DrawRegionGM() {} + +protected: + SkString onShortName() override { + return SkString("drawregion"); + } + + SkISize onISize() override { + return SkISize::Make(500, 500); + } + + bool runAsBench() const override { + return true; + } + + void onOnceBeforeDraw() override { + for (int x = 50; x < 250; x+=2) { + for (int y = 50; y < 250; y+=2) { + fRegion.op(x, y, x + 1, y + 1, SkRegion::kUnion_Op); + } + } + } + + void onDraw(SkCanvas* canvas) override { + SkPaint paint; + paint.setStyle(SkPaint::kFill_Style); + paint.setColor(0xFFFF00FF); + canvas->drawRect(SkRect::MakeLTRB(50.0f, 50.0f, 250.0f, 250.0f), paint); + + paint.setColor(0xFF00FFFF); + canvas->drawRegion(fRegion, paint); + } + + SkRegion fRegion; + +private: + typedef skiagm::GM INHERITED; +}; +DEF_GM( return new DrawRegionGM; ) |