From ad4d499f861b4cbeb870b20728eed88e830cdf4b Mon Sep 17 00:00:00 2001 From: "robertphillips@google.com" Date: Wed, 26 Jun 2013 17:06:45 +0000 Subject: Add a new GM for very thin stroke widths git-svn-id: http://skia.googlecode.com/svn/trunk@9770 2bbb7eff-a529-9590-31e7-b0007b416f81 --- gm/thinstrokedrects.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 gm/thinstrokedrects.cpp (limited to 'gm/thinstrokedrects.cpp') diff --git a/gm/thinstrokedrects.cpp b/gm/thinstrokedrects.cpp new file mode 100644 index 0000000000..2f839d1c00 --- /dev/null +++ b/gm/thinstrokedrects.cpp @@ -0,0 +1,78 @@ +/* + * 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" + +namespace skiagm { + +// Draw rects with various stroke widths at 1/8 pixel increments +class ThinStrokedRectsGM : public GM { +public: + ThinStrokedRectsGM() { + this->setBGColor(0xFF000000); + } + +protected: + virtual SkString onShortName() SK_OVERRIDE { + return SkString("thinstrokedrects"); + } + + virtual SkISize onISize() SK_OVERRIDE { + return make_isize(240, 320); + } + + virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { + + SkPaint paint; + paint.setColor(SK_ColorWHITE); + paint.setStyle(SkPaint::kStroke_Style); + paint.setAntiAlias(true); + + static const SkRect rect = { 0, 0, 10, 10 }; + static const SkRect rect2 = { 0, 0, 20, 20 }; + + static const SkScalar gStrokeWidths[] = { + 4, 2, 1, 0.5f, 0.25f, 0.125f, 0 + }; + + canvas->translate(5, 5); + for (int i = 0; i < 8; ++i) { + canvas->save(); + canvas->translate(i*0.125f, i*30.0f); + for (size_t j = 0; j < SK_ARRAY_COUNT(gStrokeWidths); ++j) { + paint.setStrokeWidth(gStrokeWidths[j]); + canvas->drawRect(rect, paint); + canvas->translate(15, 0); + } + canvas->restore(); + } + + // Draw a second time in red with a scale + paint.setColor(SK_ColorRED); + canvas->translate(0, 15); + for (int i = 0; i < 8; ++i) { + canvas->save(); + canvas->translate(i*0.125f, i*30.0f); + canvas->scale(0.5f, 0.5f); + for (size_t j = 0; j < SK_ARRAY_COUNT(gStrokeWidths); ++j) { + paint.setStrokeWidth(2.0f * gStrokeWidths[j]); + canvas->drawRect(rect2, paint); + canvas->translate(30, 0); + } + canvas->restore(); + } + } + +private: + typedef GM INHERITED; +}; + +////////////////////////////////////////////////////////////////////////////// + +DEF_GM( return SkNEW(ThinStrokedRectsGM); ) + +} -- cgit v1.2.3