aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/shadows.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-05-26 15:12:35 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-05-26 15:12:35 +0000
commite3605d0e748c1f79089f1e762f57e2a7d6644aa2 (patch)
tree05babb2ba58b039272e8ab1631c0ef4f078791fb /gm/shadows.cpp
parentc0c4d22bac5f9d762fe34d2f606105b6e1c9fa0f (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.cpp60
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);
}
}