aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/RecordOptsTest.cpp
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2017-04-28 13:48:37 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-01 14:07:10 +0000
commit53f77bd4fdd76525b66b7f26d1c5c550858120df (patch)
treed7516fa1c29a35a3e6b62aae82f3bb6e72928cf4 /tests/RecordOptsTest.cpp
parent57061eea444a8d85189827f014a451de63b49d1a (diff)
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 <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'tests/RecordOptsTest.cpp')
-rw-r--r--tests/RecordOptsTest.cpp17
1 files changed, 14 insertions, 3 deletions
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<SkImageFilter> 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<SkSurface> 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();