aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/gradients.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/gm/gradients.cpp b/gm/gradients.cpp
index 2c7036d3b9..02217c9d65 100644
--- a/gm/gradients.cpp
+++ b/gm/gradients.cpp
@@ -460,4 +460,34 @@ private:
};
DEF_GM( return new RadialGradient3GM; )
+class RadialGradient4GM : public GM {
+ SkAutoTUnref<SkShader> fShader;
+
+protected:
+ SkString onShortName() override { return SkString("radial_gradient4"); }
+
+ SkISize onISize() override { return SkISize::Make(500, 500); }
+
+ void onOnceBeforeDraw() override {
+ const SkPoint center = { 250, 250 };
+ const SkScalar kRadius = 250;
+ const SkColor colors[] = { SK_ColorRED, SK_ColorRED, SK_ColorWHITE, SK_ColorWHITE,
+ SK_ColorRED };
+ const SkScalar pos[] = { 0, .4f, .4f, .8f, .8f, 1 };
+ fShader.reset(SkGradientShader::CreateRadial(center, kRadius, colors, pos,
+ SK_ARRAY_COUNT(gColors), SkShader::kClamp_TileMode));
+ }
+
+ void onDraw(SkCanvas* canvas) override {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setShader(fShader);
+ canvas->drawRect(SkRect::MakeWH(500, 500), paint);
+ }
+
+private:
+ typedef GM INHERITED;
+};
+DEF_GM( return new RadialGradient4GM; )
+
}