Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(346)

Unified Diff: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp

Issue 2052763002: Add effect node support in PaintArtifactCompositor for layer list mode [4/4] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pac_layer_list_step_3
Patch Set: rebase & fix nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
index 4640c2775ee800661feec79171a07a6b2c3096f1..f51287bff20eaafbfe1ad90ff58ec56b9f6be4f3 100644
--- a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp
@@ -9,9 +9,11 @@
#include "cc/layers/layer.h"
#include "cc/test/fake_output_surface.h"
#include "cc/trees/clip_node.h"
+#include "cc/trees/effect_node.h"
#include "cc/trees/layer_tree_host.h"
#include "cc/trees/layer_tree_settings.h"
#include "platform/RuntimeEnabledFeatures.h"
+#include "platform/graphics/paint/EffectPaintPropertyNode.h"
#include "platform/graphics/paint/PaintArtifact.h"
#include "platform/testing/PictureMatchers.h"
#include "platform/testing/TestPaintArtifact.h"
@@ -33,6 +35,12 @@ gfx::Transform translation(SkMScalar x, SkMScalar y)
return transform;
}
+EffectPaintPropertyNode* dummyRootEffect()
+{
+ DEFINE_STATIC_REF(EffectPaintPropertyNode, node, EffectPaintPropertyNode::create(1.0));
+ return node;
+}
+
class PaintArtifactCompositorTest : public ::testing::Test {
protected:
void SetUp() override
@@ -97,11 +105,11 @@ TEST_F(PaintArtifactCompositorTest, OneTransform)
TransformationMatrix().rotate(90), FloatPoint3D(100, 100, 0));
TestPaintArtifact artifact;
- artifact.chunk(transform, nullptr, nullptr)
+ artifact.chunk(transform, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 100, 100), Color::white);
- artifact.chunk(nullptr, nullptr, nullptr)
+ artifact.chunk(nullptr, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 100, 100), Color::gray);
- artifact.chunk(transform, nullptr, nullptr)
+ artifact.chunk(transform, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(100, 100, 200, 100), Color::black);
update(artifact.build());
@@ -139,9 +147,9 @@ TEST_F(PaintArtifactCompositorTest, TransformCombining)
TransformationMatrix().translate(5, 5), FloatPoint3D(), transform1);
TestPaintArtifact artifact;
- artifact.chunk(transform1, nullptr, nullptr)
+ artifact.chunk(transform1, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 300, 200), Color::white);
- artifact.chunk(transform2, nullptr, nullptr)
+ artifact.chunk(transform2, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 300, 200), Color::black);
update(artifact.build());
@@ -223,13 +231,13 @@ TEST_F(PaintArtifactCompositorTest, NestedClips)
nullptr, FloatRoundedRect(200, 200, 700, 100), clip1);
TestPaintArtifact artifact;
- artifact.chunk(nullptr, clip1, nullptr)
+ artifact.chunk(nullptr, clip1, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::white);
- artifact.chunk(nullptr, clip2, nullptr)
+ artifact.chunk(nullptr, clip2, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::lightGray);
- artifact.chunk(nullptr, clip1, nullptr)
+ artifact.chunk(nullptr, clip1, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::darkGray);
- artifact.chunk(nullptr, clip2, nullptr)
+ artifact.chunk(nullptr, clip2, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::black);
update(artifact.build());
@@ -449,11 +457,11 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, OneTransform)
TransformationMatrix().rotate(90), FloatPoint3D(100, 100, 0));
TestPaintArtifact artifact;
- artifact.chunk(transform, nullptr, nullptr)
+ artifact.chunk(transform, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 100, 100), Color::white);
- artifact.chunk(nullptr, nullptr, nullptr)
+ artifact.chunk(nullptr, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 100, 100), Color::gray);
- artifact.chunk(transform, nullptr, nullptr)
+ artifact.chunk(transform, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(100, 100, 200, 100), Color::black);
update(artifact.build());
@@ -491,9 +499,9 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, TransformCombining)
TransformationMatrix().translate(5, 5), FloatPoint3D(), transform1);
TestPaintArtifact artifact;
- artifact.chunk(transform1, nullptr, nullptr)
+ artifact.chunk(transform1, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 300, 200), Color::white);
- artifact.chunk(transform2, nullptr, nullptr)
+ artifact.chunk(transform2, nullptr, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 300, 200), Color::black);
update(artifact.build());
@@ -549,13 +557,13 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedClips)
nullptr, FloatRoundedRect(200, 200, 700, 100), clip1);
TestPaintArtifact artifact;
- artifact.chunk(nullptr, clip1, nullptr)
+ artifact.chunk(nullptr, clip1, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::white);
- artifact.chunk(nullptr, clip2, nullptr)
+ artifact.chunk(nullptr, clip2, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::lightGray);
- artifact.chunk(nullptr, clip1, nullptr)
+ artifact.chunk(nullptr, clip1, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::darkGray);
- artifact.chunk(nullptr, clip2, nullptr)
+ artifact.chunk(nullptr, clip2, dummyRootEffect())
.rectDrawing(FloatRect(300, 350, 100, 100), Color::black);
update(artifact.build());
@@ -605,7 +613,7 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, DeeplyNestedClips)
}
TestPaintArtifact artifact;
- artifact.chunk(nullptr, clips.last(), nullptr)
+ artifact.chunk(nullptr, clips.last(), dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 200, 200), Color::white);
update(artifact.build());
@@ -637,9 +645,9 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, SiblingClips)
nullptr, FloatRoundedRect(400, 0, 400, 600), commonClip);
TestPaintArtifact artifact;
- artifact.chunk(nullptr, clip1, nullptr)
+ artifact.chunk(nullptr, clip1, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 640, 480), Color::white);
- artifact.chunk(nullptr, clip2, nullptr)
+ artifact.chunk(nullptr, clip2, dummyRootEffect())
.rectDrawing(FloatRect(0, 0, 640, 480), Color::black);
update(artifact.build());
@@ -685,5 +693,47 @@ TEST_F(PaintArtifactCompositorTestWithPropertyTrees, ForeignLayerPassesThrough)
EXPECT_EQ(translation(50, 100), layer->screen_space_transform());
}
+TEST_F(PaintArtifactCompositorTestWithPropertyTrees, EffectTreeConversion)
+{
+ RefPtr<EffectPaintPropertyNode> effect1 = EffectPaintPropertyNode::create(0.5, dummyRootEffect());
+ RefPtr<EffectPaintPropertyNode> effect2 = EffectPaintPropertyNode::create(0.3, effect1.get());
+ RefPtr<EffectPaintPropertyNode> effect3 = EffectPaintPropertyNode::create(0.2, dummyRootEffect());
+
+ TestPaintArtifact artifact;
+ artifact.chunk(nullptr, nullptr, effect2.get())
+ .rectDrawing(FloatRect(0, 0, 100, 100), Color::white);
+ artifact.chunk(nullptr, nullptr, effect1.get())
+ .rectDrawing(FloatRect(0, 0, 100, 100), Color::white);
+ artifact.chunk(nullptr, nullptr, effect3.get())
+ .rectDrawing(FloatRect(0, 0, 100, 100), Color::white);
+ update(artifact.build());
+
+ ASSERT_EQ(3u, contentLayerCount());
+
+ const cc::EffectTree& effectTree = propertyTrees().effect_tree;
+ // Node #0 reserved for null; #1 for root render surface; #2 for dummyRootEffect,
+ // plus 3 nodes for those created by this test.
+ ASSERT_EQ(6u, effectTree.size());
+
+ const cc::EffectNode& convertedDummyRootEffect = *effectTree.Node(2);
+ EXPECT_EQ(1, convertedDummyRootEffect.parent_id);
+
+ const cc::EffectNode& convertedEffect1 = *effectTree.Node(3);
+ EXPECT_EQ(convertedDummyRootEffect.id, convertedEffect1.parent_id);
+ EXPECT_FLOAT_EQ(0.5, convertedEffect1.opacity);
+
+ const cc::EffectNode& convertedEffect2 = *effectTree.Node(4);
+ EXPECT_EQ(convertedEffect1.id, convertedEffect2.parent_id);
+ EXPECT_FLOAT_EQ(0.3, convertedEffect2.opacity);
+
+ const cc::EffectNode& convertedEffect3 = *effectTree.Node(5);
+ EXPECT_EQ(convertedDummyRootEffect.id, convertedEffect3.parent_id);
+ EXPECT_FLOAT_EQ(0.2, convertedEffect3.opacity);
+
+ EXPECT_EQ(convertedEffect2.id, contentLayerAt(0)->effect_tree_index());
+ EXPECT_EQ(convertedEffect1.id, contentLayerAt(1)->effect_tree_index());
+ EXPECT_EQ(convertedEffect3.id, contentLayerAt(2)->effect_tree_index());
+}
+
} // namespace
} // namespace blink
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698