| Index: gm/pictureshader.cpp
|
| diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
|
| index eccf6a62875df213dac79440bea9983f2203c78a..630ecd8f0c60d7f456fc2e55f24b9240a705163d 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);
|
| +}
|
|
|