aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/pictureshader.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2015-02-05 10:26:27 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-05 10:26:27 -0800
commit797f58a5297ccdc9226e716cbb69f9b8c5328ac9 (patch)
tree6c87d98e4f273dc8d366671f42744e3b99bb9f3d /gm/pictureshader.cpp
parent6dee2ad388152cd960253021009f109d45db1fe4 (diff)
Diffstat (limited to 'gm/pictureshader.cpp')
-rw-r--r--gm/pictureshader.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
index eccf6a6287..630ecd8f0c 100644
--- a/gm/pictureshader.cpp
+++ b/gm/pictureshader.cpp
@@ -180,3 +180,38 @@ private:
};
DEF_GM( return SkNEW_ARGS(PictureShaderGM, (50, 100)); )
+
+DEF_SIMPLE_GM(tiled_picture_shader, canvas, 400, 400) {
+ // https://code.google.com/p/skia/issues/detail?id=3398
+ SkRect tile = SkRect::MakeWH(100, 100);
+
+ SkPictureRecorder recorder;
+ SkCanvas* c = recorder.beginRecording(tile);
+
+ SkRect r = tile;
+ r.inset(4, 4);
+ SkPaint p;
+ p.setColor(0xFF303F9F); // dark blue
+ c->drawRect(r, p);
+ p.setColor(0xFFC5CAE9); // light blue
+ p.setStrokeWidth(10);
+ c->drawLine(20, 20, 80, 80, p);
+
+ SkAutoTUnref<SkPicture> picture(recorder.endRecording());
+ SkAutoTUnref<SkShader> shader(SkShader::CreatePictureShader(
+ picture.get(),
+ SkShader::kRepeat_TileMode,
+ SkShader::kRepeat_TileMode,
+ NULL,
+ NULL));
+
+ p.setColor(0xFF8BC34A); // green
+ canvas->drawPaint(p);
+
+ canvas->clipRect(SkRect::MakeXYWH(0, 0, 400, 350));
+ p.setColor(0xFFB6B6B6); // gray
+ canvas->drawPaint(p);
+ p.setShader(shader.get());
+
+ canvas->drawPaint(p);
+}