aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/SkLiteDLTest.cpp
diff options
context:
space:
mode:
authorGravatar Derek Sollenberger <djsollen@google.com>2017-03-01 15:33:23 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-02 20:16:17 +0000
commitd7875f57bd5f17ac27f1cb2ace25224299ff2389 (patch)
treeb3592daa34cae97c713e1e6571c694ba5690a9ff /tests/SkLiteDLTest.cpp
parentc66390560ed845dbaf8656615f6a9524da643fa4 (diff)
Refactor SkLiteDL to no longer extend SkDrawable.
Change-Id: Ieaa849bceba0e98e4c99491c721fe945a0694e68 Reviewed-on: https://skia-review.googlesource.com/9111 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
Diffstat (limited to 'tests/SkLiteDLTest.cpp')
-rw-r--r--tests/SkLiteDLTest.cpp36
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);