diff options
author | halcanary <halcanary@google.com> | 2015-02-05 10:26:27 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-05 10:26:27 -0800 |
commit | 797f58a5297ccdc9226e716cbb69f9b8c5328ac9 (patch) | |
tree | 6c87d98e4f273dc8d366671f42744e3b99bb9f3d /gm/pictureshader.cpp | |
parent | 6dee2ad388152cd960253021009f109d45db1fe4 (diff) |
GM for http://skbug.com/3398
BUG=skia:3398
Review URL: https://codereview.chromium.org/896093005
Diffstat (limited to 'gm/pictureshader.cpp')
-rw-r--r-- | gm/pictureshader.cpp | 35 |
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); +} |