From 797f58a5297ccdc9226e716cbb69f9b8c5328ac9 Mon Sep 17 00:00:00 2001 From: halcanary Date: Thu, 5 Feb 2015 10:26:27 -0800 Subject: GM for http://skbug.com/3398 BUG=skia:3398 Review URL: https://codereview.chromium.org/896093005 --- gm/pictureshader.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gm/pictureshader.cpp') 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 picture(recorder.endRecording()); + SkAutoTUnref 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); +} -- cgit v1.2.3