diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-05-26 15:12:35 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-05-26 15:12:35 +0000 |
commit | e3605d0e748c1f79089f1e762f57e2a7d6644aa2 (patch) | |
tree | 05babb2ba58b039272e8ab1631c0ef4f078791fb /gm/shadows.cpp | |
parent | c0c4d22bac5f9d762fe34d2f606105b6e1c9fa0f (diff) |
retool without shapes, which are broken/experimental
git-svn-id: http://skia.googlecode.com/svn/trunk@1436 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/shadows.cpp')
-rw-r--r-- | gm/shadows.cpp | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/gm/shadows.cpp b/gm/shadows.cpp index d3f188261b..bba997fb38 100644 --- a/gm/shadows.cpp +++ b/gm/shadows.cpp @@ -1,32 +1,29 @@ #include "gm.h" -#include "SkPicture.h" -#include "SkRectShape.h" #include "SkBlurDrawLooper.h" namespace skiagm { /////////////////////////////////////////////////////////////////////////////// -class ShadowsGM : public GM { +static void setup(SkPaint* paint, SkColor c, SkScalar strokeWidth) { + paint->setColor(c); + if (strokeWidth < 0) { + paint->setStyle(SkPaint::kFill_Style); + } else { + paint->setStyle(SkPaint::kStroke_Style); + paint->setStrokeWidth(strokeWidth); + } +} +class ShadowsGM : public GM { public: SkPath fCirclePath; - SkPaint fPaint; - SkRectShape fRectShape; + SkRect fRect; + ShadowsGM() { fCirclePath.addCircle(SkIntToScalar(20), SkIntToScalar(20), SkIntToScalar(10) ); - fPaint.setStrokeWidth(SkIntToScalar(4)); - fPaint.setAntiAlias(true); - fPaint.setColor(0xFF00FF00); - fPaint.setStyle(SkPaint::kStroke_Style); - SkRect rect; - rect.set(SkIntToScalar(10), SkIntToScalar(10), - SkIntToScalar(30), SkIntToScalar(30)); - fRectShape.setRect(rect); - fRectShape.paint().setColor(SK_ColorRED); - } - - virtual ~ShadowsGM() { + fRect.set(SkIntToScalar(10), SkIntToScalar(10), + SkIntToScalar(30), SkIntToScalar(30)); } protected: @@ -80,15 +77,28 @@ protected: SkBlurDrawLooper::kHighQuality_BlurFlag ); SkAutoUnref aurL4(shadowLoopers[4]); - for (int looper = 0; looper < 5; looper ++) - { - fRectShape.paint().setLooper(shadowLoopers[looper]); - canvas->resetMatrix(); - canvas->translate(SkIntToScalar(looper*40), SkIntToScalar(0)); - canvas->drawShape(&fRectShape); - fPaint.setLooper(shadowLoopers[looper]); + static const struct { + SkColor fColor; + SkScalar fStrokeWidth; + } gRec[] = { + { SK_ColorRED, -SK_Scalar1 }, + { SK_ColorGREEN, SkIntToScalar(4) }, + }; + + SkPaint paint; + paint.setAntiAlias(true); + for (size_t i = 0; i < SK_ARRAY_COUNT(shadowLoopers); ++i) { + SkAutoCanvasRestore acr(canvas, true); + + paint.setLooper(shadowLoopers[i]); + + canvas->translate(SkIntToScalar(i*40), SkIntToScalar(0)); + setup(&paint, gRec[0].fColor, gRec[0].fStrokeWidth); + canvas->drawRect(fRect, paint); + canvas->translate(SkIntToScalar(0), SkIntToScalar(40)); - canvas->drawPath(fCirclePath, fPaint); + setup(&paint, gRec[1].fColor, gRec[1].fStrokeWidth); + canvas->drawPath(fCirclePath, paint); } } |