diff options
Diffstat (limited to 'tests/SkLiteDLTest.cpp')
-rw-r--r-- | tests/SkLiteDLTest.cpp | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/tests/SkLiteDLTest.cpp b/tests/SkLiteDLTest.cpp index 96046ccc8a..514464aaf9 100644 --- a/tests/SkLiteDLTest.cpp +++ b/tests/SkLiteDLTest.cpp @@ -10,21 +10,41 @@ #include "SkLiteRecorder.h" DEF_TEST(SkLiteDL_basics, r) { - sk_sp<SkLiteDL> p { SkLiteDL::New({2,2,3,3}) }; + SkLiteDL p; + p.save(); + p.clipRect(SkRect{2,3,4,5}, kIntersect_SkClipOp, true); + p.drawRect(SkRect{0,0,9,9}, SkPaint{}); + p.restore(); +} - p->save(); - p->clipRect(SkRect{2,3,4,5}, kIntersect_SkClipOp, true); - p->drawRect(SkRect{0,0,9,9}, SkPaint{}); - p->restore(); +DEF_TEST(SkLiteDL_unbalanced, r) { + SkLiteRecorder rec; + SkCanvas* c = &rec; + + SkLiteDL p; + rec.reset(&p, {2,2,3,3}); + c->save(); + c->scale(2,2); + c->save(); + c->translate(1,1); + // missing restore() but SkLiteDL::draw should balance it for us + c->restore(); + + // reinit the recorder so we can playback the original SkLiteDL + SkLiteDL p2; + rec.reset(&p2, {2,2,3,3}); + + REPORTER_ASSERT(r, 1 == rec.getSaveCount()); + p.draw(c); + REPORTER_ASSERT(r, 1 == rec.getSaveCount()); } DEF_TEST(SkLiteRecorder, r) { - sk_sp<SkLiteDL> p { SkLiteDL::New({2,2,3,3}) }; - + SkLiteDL p; SkLiteRecorder rec; SkCanvas* c = &rec; - rec.reset(p.get()); + rec.reset(&p, {2,2,3,3}); c->save(); c->clipRect(SkRect{2,3,4,5}, kIntersect_SkClipOp, true); |