aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2018-01-04 21:11:55 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-05 03:29:04 +0000
commit18eafd922d911606dfe991efad8ec5eaafbc2704 (patch)
treeba4bfefd307c84a0045986b3d08d930f0d9380e5 /tests
parent98992ae3b7e06aa8de48d91b5b12dd3a5e8ea54f (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.cpp25
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);