diff options
author | 2018-01-04 21:11:55 -0500 | |
---|---|---|
committer | 2018-01-05 03:29:04 +0000 | |
commit | 18eafd922d911606dfe991efad8ec5eaafbc2704 (patch) | |
tree | ba4bfefd307c84a0045986b3d08d930f0d9380e5 /tests | |
parent | 98992ae3b7e06aa8de48d91b5b12dd3a5e8ea54f (diff) |
[skotty, sksg] Add layer transform inheritance support
Split the matrix component of sksg::Transform into its own, free-floating,
chainable node.
Update the composite transform animator to target matrix nodes instead of
transform nodes.
Update the layer transform attachment logic to follow "parent" references,
and build matrix inheritance chains on the fly.
TBR=
Change-Id: I017e5e462274c2cc210730e057b3ea2e7de5c0cb
Reviewed-on: https://skia-review.googlesource.com/90803
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/SGTest.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/tests/SGTest.cpp b/tests/SGTest.cpp index ca6c23d163..64b83b5bf8 100644 --- a/tests/SGTest.cpp +++ b/tests/SGTest.cpp @@ -52,18 +52,19 @@ static void check_inval(skiatest::Reporter* reporter, const sk_sp<sksg::Node>& r } DEF_TEST(SGInvalidation, reporter) { - auto color = sksg::Color::Make(0xff000000); - auto r1 = sksg::Rect::Make(SkRect::MakeWH(100, 100)), - r2 = sksg::Rect::Make(SkRect::MakeWH(100, 100)); - auto grp = sksg::Group::Make(); - auto tr = sksg::Transform::Make(grp, SkMatrix::I()); + auto color = sksg::Color::Make(0xff000000); + auto r1 = sksg::Rect::Make(SkRect::MakeWH(100, 100)), + r2 = sksg::Rect::Make(SkRect::MakeWH(100, 100)); + auto grp = sksg::Group::Make(); + auto matrix = sksg::Matrix::Make(SkMatrix::I()); + auto root = sksg::Transform::Make(grp, matrix); grp->addChild(sksg::Draw::Make(r1, color)); grp->addChild(sksg::Draw::Make(r2, color)); { // Initial revalidation. - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(100, 100), SkRect::MakeLargestS32(), nullptr); @@ -73,7 +74,7 @@ DEF_TEST(SGInvalidation, reporter) { // Move r2 to (200 100). r2->setL(200); r2->setT(100); r2->setR(300); r2->setB(200); std::vector<SkRect> damage = { {0, 0, 100, 100}, { 200, 100, 300, 200} }; - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(300, 200), SkRect::MakeWH(300, 200), &damage); @@ -83,7 +84,7 @@ DEF_TEST(SGInvalidation, reporter) { // Update the common color. color->setColor(0xffff0000); std::vector<SkRect> damage = { {0, 0, 100, 100}, { 200, 100, 300, 200} }; - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(300, 200), SkRect::MakeWH(300, 200), &damage); @@ -93,7 +94,7 @@ DEF_TEST(SGInvalidation, reporter) { // Shrink r1. r1->setR(50); std::vector<SkRect> damage = { {0, 0, 100, 100}, { 0, 0, 50, 100} }; - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(300, 200), SkRect::MakeWH(100, 100), &damage); @@ -101,9 +102,9 @@ DEF_TEST(SGInvalidation, reporter) { { // Update transform. - tr->setMatrix(SkMatrix::MakeScale(2, 2)); + matrix->setMatrix(SkMatrix::MakeScale(2, 2)); std::vector<SkRect> damage = { {0, 0, 300, 200}, { 0, 0, 600, 400} }; - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(600, 400), SkRect::MakeWH(600, 400), &damage); @@ -113,7 +114,7 @@ DEF_TEST(SGInvalidation, reporter) { // Shrink r2 under transform. r2->setR(250); std::vector<SkRect> damage = { {400, 200, 600, 400}, { 400, 200, 500, 400} }; - check_inval(reporter, tr, + check_inval(reporter, root, SkRect::MakeWH(500, 400), SkRect::MakeLTRB(400, 200, 600, 400), &damage); |