From 98fabaf66af1b95f78ce07b8e69ff1785791f919 Mon Sep 17 00:00:00 2001 From: Nathaniel Nifong Date: Thu, 17 Dec 2020 12:10:46 -0500 Subject: Pass lambda to endPage callback which read back textures Expecting presubmit to pass after landing https://skia-review.googlesource.com/c/skia/+/344158 Bug:skia:9765 Test: ran capture on a Pixel 3 and examined file in skia debugger Change-Id: I3153c79fe5b98cd8cfdff928ae4940dc4a4f0b88 --- libs/renderengine/skia/debug/SkiaCapture.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/renderengine/skia/debug/SkiaCapture.cpp b/libs/renderengine/skia/debug/SkiaCapture.cpp index 8006a111bd..e9cfead8b6 100644 --- a/libs/renderengine/skia/debug/SkiaCapture.cpp +++ b/libs/renderengine/skia/debug/SkiaCapture.cpp @@ -129,8 +129,14 @@ bool SkiaCapture::setupMultiFrameCapture() { // SkDocuments don't take ownership of the streams they write. // we need to keep it until after mMultiPic.close() // procs is passed as a pointer, but just as a method of having an optional default. - // procs doesn't need to outlive this Make call. - mMultiPic = SkMakeMultiPictureDocument(mOpenMultiPicStream.get(), &procs); + // procs doesn't need to outlive this Make call + // The last argument is a callback for the endPage behavior. + // See SkSharingProc.h for more explanation of this callback. + mMultiPic = SkMakeMultiPictureDocument( + mOpenMultiPicStream.get(), &procs, + [sharingCtx = mSerialContext.get()](const SkPicture* pic) { + SkSharingSerialContext::collectNonTextureImagesFromPicture(pic, sharingCtx); + }); mCaptureRunning = true; return true; } else { -- cgit v1.2.3-59-g8ed1b