Index: gm/composeshader.cpp |
diff --git a/gm/composeshader.cpp b/gm/composeshader.cpp |
index b40e2263d60e23650e2d1fb3aa35967adb820534..b5607d511b9bcf92704ef1eb212a0f87990b2ead 100644 |
--- a/gm/composeshader.cpp |
+++ b/gm/composeshader.cpp |
@@ -1,4 +1,3 @@ |
- |
/* |
* Copyright 2012 Google Inc. |
* |
@@ -16,11 +15,9 @@ |
#include "SkString.h" |
#include "SkXfermode.h" |
-namespace skiagm { |
- |
-class ShaderGM : public GM { |
+class ComposeShaderGM : public skiagm::GM { |
public: |
- ShaderGM() { |
+ ComposeShaderGM() { |
SkPoint pts[2]; |
SkColor colors[2]; |
@@ -46,7 +43,7 @@ public: |
mode->unref(); |
} |
- virtual ~ShaderGM() { |
+ virtual ~ComposeShaderGM() { |
SkSafeUnref(fShader); |
} |
@@ -60,7 +57,7 @@ protected: |
} |
virtual SkISize onISize() SK_OVERRIDE { |
- return make_isize(120, 120); |
+ return SkISize::Make(120, 120); |
} |
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
@@ -73,14 +70,47 @@ protected: |
canvas->drawRectCoords(0, 0, SkIntToScalar(100), SkIntToScalar(100), paint); |
} |
-private: |
+protected: |
SkShader* fShader; |
+ |
+private: |
typedef GM INHERITED ; |
}; |
+class ComposeShaderAlphaGM : public ComposeShaderGM { |
+public: |
+ ComposeShaderAlphaGM() {} |
+ |
+protected: |
+ virtual SkString onShortName() SK_OVERRIDE { |
+ return SkString("composeshader_alpha"); |
+ } |
+ |
+ virtual SkISize onISize() SK_OVERRIDE { |
+ return SkISize::Make(120, 1024); |
+ } |
+ |
+ virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
+ SkPaint paint; |
+ paint.setColor(SK_ColorGREEN); |
+ |
+ const SkRect r = SkRect::MakeXYWH(5, 5, 100, 100); |
+ for (int alpha = 0xFF; alpha > 0; alpha -= 0x20) { |
+ paint.setAlpha(0xFF); |
+ paint.setShader(NULL); |
+ canvas->drawRect(r, paint); |
+ |
+ paint.setAlpha(alpha); |
+ paint.setShader(fShader); |
+ canvas->drawRect(r, paint); |
+ |
+ canvas->translate(r.width() + 5, 0); |
+ } |
+ } |
+}; |
+ |
////////////////////////////////////////////////////////////////////////////// |
-static GM* MyFactory(void*) { return new ShaderGM; } |
-static GMRegistry reg(MyFactory); |
+DEF_GM( return new ComposeShaderGM; ) |
+DEF_GM( return new ComposeShaderAlphaGM; ) |
-} // namespace |