Index: gm/multipicturedraw.cpp |
diff --git a/gm/multipicturedraw.cpp b/gm/multipicturedraw.cpp |
index c3f6b892bf71d3a24b5b75eeebadb0a291c77df9..1f302ee57af608d3a206d78a35a7ca0bfd78a42b 100644 |
--- a/gm/multipicturedraw.cpp |
+++ b/gm/multipicturedraw.cpp |
@@ -41,7 +41,7 @@ static SkPath make_hex_path(SkScalar originX, SkScalar originY) { |
// Make a picture that is a tiling of the plane with stroked hexagons where |
// each hexagon is in its own layer. The layers are to exercise Ganesh's |
// layer hoisting. |
-static const SkPicture* make_hex_plane_picture(SkColor fillColor) { |
+static sk_sp<SkPicture> make_hex_plane_picture(SkColor fillColor) { |
// Create a hexagon with its center at the origin |
SkPath hex = make_hex_path(0, 0); |
@@ -80,14 +80,14 @@ static const SkPicture* make_hex_plane_picture(SkColor fillColor) { |
yPos += 2 * kHexSide * kRoot3Over2; |
} |
- return recorder.endRecording(); |
+ return recorder.finishRecordingAsPicture(); |
} |
// Create a picture that consists of a single large layer that is tiled |
// with hexagons. |
// This is intended to exercise the layer hoisting code's clip handling (in |
// tile mode). |
-static const SkPicture* make_single_layer_hex_plane_picture() { |
+static sk_sp<SkPicture> make_single_layer_hex_plane_picture() { |
// Create a hexagon with its center at the origin |
SkPath hex = make_hex_path(0, 0); |
@@ -136,7 +136,7 @@ static const SkPicture* make_single_layer_hex_plane_picture() { |
canvas->restore(); |
- return recorder.endRecording(); |
+ return recorder.finishRecordingAsPicture(); |
} |
// Make an equilateral triangle path with its top corner at (originX, originY) |
@@ -149,7 +149,7 @@ static SkPath make_tri_path(SkScalar originX, SkScalar originY) { |
return tri; |
} |
-static const SkPicture* make_tri_picture() { |
+static sk_sp<SkPicture> make_tri_picture() { |
SkPath tri = make_tri_path(SkScalarHalf(kTriSide), 0); |
SkPaint fill; |
@@ -176,10 +176,10 @@ static const SkPicture* make_tri_picture() { |
canvas->drawPath(tri, stroke); |
canvas->restore(); |
- return recorder.endRecording(); |
+ return recorder.finishRecordingAsPicture(); |
} |
-static const SkPicture* make_sub_picture(const SkPicture* tri) { |
+static sk_sp<SkPicture> make_sub_picture(const SkPicture* tri) { |
SkPictureRecorder recorder; |
SkRTreeFactory bbhFactory; |
@@ -205,15 +205,15 @@ static const SkPicture* make_sub_picture(const SkPicture* tri) { |
canvas->drawPicture(tri); |
canvas->restore(); |
- return recorder.endRecording(); |
+ return recorder.finishRecordingAsPicture(); |
} |
// Create a Sierpinkski-like picture that starts with a top row with a picture |
// that just contains a triangle. Subsequent rows take the prior row's picture, |
// shrinks it and replicates it 3 times then draws and appropriate number of |
// copies of it. |
-static const SkPicture* make_sierpinski_picture() { |
- SkAutoTUnref<const SkPicture> pic(make_tri_picture()); |
+static sk_sp<SkPicture> make_sierpinski_picture() { |
+ sk_sp<SkPicture> pic(make_tri_picture()); |
SkPictureRecorder recorder; |
SkRTreeFactory bbhFactory; |
@@ -233,12 +233,12 @@ static const SkPicture* make_sierpinski_picture() { |
} |
canvas->restore(); |
- pic.reset(make_sub_picture(pic)); |
+ pic = make_sub_picture(pic.get()); |
canvas->translate(0, 1.5f * kTriSide / kRoot3); |
} |
- return recorder.endRecording(); |
+ return recorder.finishRecordingAsPicture(); |
} |
static SkSurface* create_compat_surface(SkCanvas* canvas, int width, int height) { |
@@ -356,7 +356,7 @@ static const PFContentMtd gContentMthds[] = { |
static void create_content(SkMultiPictureDraw* mpd, PFContentMtd pfGen, |
const SkPicture* pictures[kNumPictures], |
SkCanvas* dest, const SkMatrix& xform) { |
- SkAutoTUnref<SkPicture> composite; |
+ sk_sp<SkPicture> composite; |
{ |
SkPictureRecorder recorder; |
@@ -369,10 +369,10 @@ static void create_content(SkMultiPictureDraw* mpd, PFContentMtd pfGen, |
(*pfGen)(pictureCanvas, pictures); |
- composite.reset(recorder.endRecording()); |
+ composite = recorder.finishRecordingAsPicture(); |
} |
- mpd->add(dest, composite, &xform); |
+ mpd->add(dest, composite.get(), &xform); |
} |
typedef void(*PFLayoutMtd)(SkCanvas* finalCanvas, SkMultiPictureDraw* mpd, |
@@ -490,10 +490,10 @@ namespace skiagm { |
const SkPicture* fPictures[kNumPictures]; |
void onOnceBeforeDraw() override { |
- fPictures[0] = make_hex_plane_picture(SK_ColorWHITE); |
- fPictures[1] = make_hex_plane_picture(sk_tool_utils::color_to_565(SK_ColorGRAY)); |
- fPictures[2] = make_sierpinski_picture(); |
- fPictures[3] = make_single_layer_hex_plane_picture(); |
+ fPictures[0] = make_hex_plane_picture(SK_ColorWHITE).release(); |
+ fPictures[1] = make_hex_plane_picture(sk_tool_utils::color_to_565(SK_ColorGRAY)).release(); |
+ fPictures[2] = make_sierpinski_picture().release(); |
+ fPictures[3] = make_single_layer_hex_plane_picture().release(); |
} |
void onDraw(SkCanvas* canvas) override { |