From 53f77bd4fdd76525b66b7f26d1c5c550858120df Mon Sep 17 00:00:00 2001 From: Florin Malita Date: Fri, 28 Apr 2017 13:48:37 -0400 Subject: Initial clip-mask-layer support SkBitmapDevice-only implementation. Will add A8 fast path specializations in a follow-up. Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 BUG=skia:6005 Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 Reviewed-on: https://skia-review.googlesource.com/14183 Reviewed-by: Mike Reed Commit-Queue: Florin Malita --- tests/RecordOptsTest.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'tests/RecordOptsTest.cpp') diff --git a/tests/RecordOptsTest.cpp b/tests/RecordOptsTest.cpp index 09e774e5af..d34959af5d 100644 --- a/tests/RecordOptsTest.cpp +++ b/tests/RecordOptsTest.cpp @@ -190,10 +190,19 @@ DEF_TEST(RecordOpts_NoopSaveLayerDrawRestore, r) { // saveLayer w/ backdrop should NOT go away sk_sp filter(SkBlurImageFilter::Make(3, 3, nullptr)); - recorder.saveLayer({ nullptr, nullptr, filter.get(), 0}); + recorder.saveLayer({ nullptr, nullptr, filter.get(), nullptr, nullptr, 0}); recorder.drawRect(draw, opaqueDrawPaint); recorder.restore(); assert_savelayer_draw_restore(r, &record, 18, false); + + // saveLayer w/ clip mask should also NOT go away + { + sk_sp surface(SkSurface::MakeRasterN32Premul(10, 10)); + recorder.saveLayer({ nullptr, nullptr, nullptr, surface->makeImageSnapshot(), nullptr, 0}); + recorder.drawRect(draw, opaqueDrawPaint); + recorder.restore(); + assert_savelayer_draw_restore(r, &record, 21, false); + } } #endif @@ -265,10 +274,12 @@ DEF_TEST(RecordOpts_MergeSvgOpacityAndFilterLayers, r) { for (size_t m = 0; m < SK_ARRAY_COUNT(secondPaints); ++m) { bool innerNoOped = !secondBounds[k] && !secondPaints[m] && !innerF; - recorder.saveLayer({firstBounds[i], firstPaints[j], outerF, 0}); + recorder.saveLayer({firstBounds[i], firstPaints[j], outerF, + nullptr, nullptr, 0}); recorder.save(); recorder.clipRect(clip); - recorder.saveLayer({secondBounds[k], secondPaints[m], innerF, 0}); + recorder.saveLayer({secondBounds[k], secondPaints[m], innerF, + nullptr, nullptr, 0}); recorder.restore(); recorder.restore(); recorder.restore(); -- cgit v1.2.3