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

Unified Diff: cc/damage_tracker_unittest.cc

Issue 11472021: cc: Pass LayerTreeHostImpl to LayerImpl constructor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years 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 | « cc/cc_tests.gyp ('k') | cc/delegated_renderer_layer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/damage_tracker_unittest.cc
diff --git a/cc/damage_tracker_unittest.cc b/cc/damage_tracker_unittest.cc
index 97fe88ca61bdb38481c7def826949c91ee7ec376..88cd441a844de0711d507742d8902f8363e3e0f3 100644
--- a/cc/damage_tracker_unittest.cc
+++ b/cc/damage_tracker_unittest.cc
@@ -8,6 +8,8 @@
#include "cc/layer_tree_host_common.h"
#include "cc/math_util.h"
#include "cc/single_thread_proxy.h"
+#include "cc/test/fake_impl_proxy.h"
+#include "cc/test/fake_layer_tree_host_impl.h"
#include "cc/test/geometry_test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/effects/SkBlurImageFilter.h"
@@ -63,106 +65,115 @@ void emulateDrawingOneFrame(LayerImpl* root)
root->resetAllChangeTrackingForSubtree();
}
-scoped_ptr<LayerImpl> createTestTreeWithOneSurface()
-{
- scoped_ptr<LayerImpl> root = LayerImpl::create(1);
- scoped_ptr<LayerImpl> child = LayerImpl::create(2);
-
- root->setPosition(gfx::PointF());
- root->setAnchorPoint(gfx::PointF());
- root->setBounds(gfx::Size(500, 500));
- root->setContentBounds(gfx::Size(500, 500));
- root->setDrawsContent(true);
- root->createRenderSurface();
- root->renderSurface()->setContentRect(gfx::Rect(gfx::Point(), gfx::Size(500, 500)));
+class DamageTrackerTest : public testing::Test {
+public:
+ DamageTrackerTest()
+ : m_hostImpl(&m_proxy)
+ {
+ }
- child->setPosition(gfx::PointF(100, 100));
- child->setAnchorPoint(gfx::PointF());
- child->setBounds(gfx::Size(30, 30));
- child->setContentBounds(gfx::Size(30, 30));
- child->setDrawsContent(true);
- root->addChild(child.Pass());
+ scoped_ptr<LayerImpl> createTestTreeWithOneSurface()
+ {
+ scoped_ptr<LayerImpl> root = LayerImpl::create(&m_hostImpl, 1);
+ scoped_ptr<LayerImpl> child = LayerImpl::create(&m_hostImpl, 2);
+
+ root->setPosition(gfx::PointF());
+ root->setAnchorPoint(gfx::PointF());
+ root->setBounds(gfx::Size(500, 500));
+ root->setContentBounds(gfx::Size(500, 500));
+ root->setDrawsContent(true);
+ root->createRenderSurface();
+ root->renderSurface()->setContentRect(gfx::Rect(gfx::Point(), gfx::Size(500, 500)));
+
+ child->setPosition(gfx::PointF(100, 100));
+ child->setAnchorPoint(gfx::PointF());
+ child->setBounds(gfx::Size(30, 30));
+ child->setContentBounds(gfx::Size(30, 30));
+ child->setDrawsContent(true);
+ root->addChild(child.Pass());
+
+ return root.Pass();
+ }
- return root.Pass();
-}
+ scoped_ptr<LayerImpl> createTestTreeWithTwoSurfaces()
+ {
+ // This test tree has two render surfaces: one for the root, and one for
+ // child1. Additionally, the root has a second child layer, and child1 has two
+ // children of its own.
+
+ scoped_ptr<LayerImpl> root = LayerImpl::create(&m_hostImpl, 1);
+ scoped_ptr<LayerImpl> child1 = LayerImpl::create(&m_hostImpl, 2);
+ scoped_ptr<LayerImpl> child2 = LayerImpl::create(&m_hostImpl, 3);
+ scoped_ptr<LayerImpl> grandChild1 = LayerImpl::create(&m_hostImpl, 4);
+ scoped_ptr<LayerImpl> grandChild2 = LayerImpl::create(&m_hostImpl, 5);
+
+ root->setPosition(gfx::PointF());
+ root->setAnchorPoint(gfx::PointF());
+ root->setBounds(gfx::Size(500, 500));
+ root->setContentBounds(gfx::Size(500, 500));
+ root->setDrawsContent(true);
+ root->createRenderSurface();
+ root->renderSurface()->setContentRect(gfx::Rect(gfx::Point(), gfx::Size(500, 500)));
+
+ child1->setPosition(gfx::PointF(100, 100));
+ child1->setAnchorPoint(gfx::PointF());
+ child1->setBounds(gfx::Size(30, 30));
+ child1->setContentBounds(gfx::Size(30, 30));
+ child1->setOpacity(0.5); // with a child that drawsContent, this will cause the layer to create its own renderSurface.
+ child1->setDrawsContent(false); // this layer does not draw, but is intended to create its own renderSurface.
+ child1->setForceRenderSurface(true);
+
+ child2->setPosition(gfx::PointF(11, 11));
+ child2->setAnchorPoint(gfx::PointF());
+ child2->setBounds(gfx::Size(18, 18));
+ child2->setContentBounds(gfx::Size(18, 18));
+ child2->setDrawsContent(true);
-scoped_ptr<LayerImpl> createTestTreeWithTwoSurfaces()
-{
- // This test tree has two render surfaces: one for the root, and one for
- // child1. Additionally, the root has a second child layer, and child1 has two
- // children of its own.
-
- scoped_ptr<LayerImpl> root = LayerImpl::create(1);
- scoped_ptr<LayerImpl> child1 = LayerImpl::create(2);
- scoped_ptr<LayerImpl> child2 = LayerImpl::create(3);
- scoped_ptr<LayerImpl> grandChild1 = LayerImpl::create(4);
- scoped_ptr<LayerImpl> grandChild2 = LayerImpl::create(5);
-
- root->setPosition(gfx::PointF());
- root->setAnchorPoint(gfx::PointF());
- root->setBounds(gfx::Size(500, 500));
- root->setContentBounds(gfx::Size(500, 500));
- root->setDrawsContent(true);
- root->createRenderSurface();
- root->renderSurface()->setContentRect(gfx::Rect(gfx::Point(), gfx::Size(500, 500)));
-
- child1->setPosition(gfx::PointF(100, 100));
- child1->setAnchorPoint(gfx::PointF());
- child1->setBounds(gfx::Size(30, 30));
- child1->setContentBounds(gfx::Size(30, 30));
- child1->setOpacity(0.5); // with a child that drawsContent, this will cause the layer to create its own renderSurface.
- child1->setDrawsContent(false); // this layer does not draw, but is intended to create its own renderSurface.
- child1->setForceRenderSurface(true);
+ grandChild1->setPosition(gfx::PointF(200, 200));
+ grandChild1->setAnchorPoint(gfx::PointF());
+ grandChild1->setBounds(gfx::Size(6, 8));
+ grandChild1->setContentBounds(gfx::Size(6, 8));
+ grandChild1->setDrawsContent(true);
+
+ grandChild2->setPosition(gfx::PointF(190, 190));
+ grandChild2->setAnchorPoint(gfx::PointF());
+ grandChild2->setBounds(gfx::Size(6, 8));
+ grandChild2->setContentBounds(gfx::Size(6, 8));
+ grandChild2->setDrawsContent(true);
+
+ child1->addChild(grandChild1.Pass());
+ child1->addChild(grandChild2.Pass());
+ root->addChild(child1.Pass());
+ root->addChild(child2.Pass());
- child2->setPosition(gfx::PointF(11, 11));
- child2->setAnchorPoint(gfx::PointF());
- child2->setBounds(gfx::Size(18, 18));
- child2->setContentBounds(gfx::Size(18, 18));
- child2->setDrawsContent(true);
-
- grandChild1->setPosition(gfx::PointF(200, 200));
- grandChild1->setAnchorPoint(gfx::PointF());
- grandChild1->setBounds(gfx::Size(6, 8));
- grandChild1->setContentBounds(gfx::Size(6, 8));
- grandChild1->setDrawsContent(true);
-
- grandChild2->setPosition(gfx::PointF(190, 190));
- grandChild2->setAnchorPoint(gfx::PointF());
- grandChild2->setBounds(gfx::Size(6, 8));
- grandChild2->setContentBounds(gfx::Size(6, 8));
- grandChild2->setDrawsContent(true);
-
- child1->addChild(grandChild1.Pass());
- child1->addChild(grandChild2.Pass());
- root->addChild(child1.Pass());
- root->addChild(child2.Pass());
-
- return root.Pass();
-}
+ return root.Pass();
+ }
-scoped_ptr<LayerImpl> createAndSetUpTestTreeWithOneSurface()
-{
- scoped_ptr<LayerImpl> root = createTestTreeWithOneSurface();
+ scoped_ptr<LayerImpl> createAndSetUpTestTreeWithOneSurface()
+ {
+ scoped_ptr<LayerImpl> root = createTestTreeWithOneSurface();
- // Setup includes going past the first frame which always damages everything, so
- // that we can actually perform specific tests.
- emulateDrawingOneFrame(root.get());
+ // Setup includes going past the first frame which always damages everything, so
+ // that we can actually perform specific tests.
+ emulateDrawingOneFrame(root.get());
- return root.Pass();
-}
+ return root.Pass();
+ }
-scoped_ptr<LayerImpl> createAndSetUpTestTreeWithTwoSurfaces()
-{
- scoped_ptr<LayerImpl> root = createTestTreeWithTwoSurfaces();
+ scoped_ptr<LayerImpl> createAndSetUpTestTreeWithTwoSurfaces()
+ {
+ scoped_ptr<LayerImpl> root = createTestTreeWithTwoSurfaces();
- // Setup includes going past the first frame which always damages everything, so
- // that we can actually perform specific tests.
- emulateDrawingOneFrame(root.get());
+ // Setup includes going past the first frame which always damages everything, so
+ // that we can actually perform specific tests.
+ emulateDrawingOneFrame(root.get());
- return root.Pass();
-}
+ return root.Pass();
+ }
-class DamageTrackerTest : public testing::Test {
+protected:
+ FakeImplProxy m_proxy;
+ FakeLayerTreeHostImpl m_hostImpl;
};
TEST_F(DamageTrackerTest, sanityCheckTestTreeWithOneSurface)
@@ -525,7 +536,7 @@ TEST_F(DamageTrackerTest, verifyDamageForAddingAndRemovingLayer)
//
clearDamageForAllSurfaces(root.get());
{
- scoped_ptr<LayerImpl> child2 = LayerImpl::create(3);
+ scoped_ptr<LayerImpl> child2 = LayerImpl::create(&m_hostImpl, 3);
child2->setPosition(gfx::PointF(400, 380));
child2->setAnchorPoint(gfx::PointF());
child2->setBounds(gfx::Size(6, 8));
@@ -565,7 +576,7 @@ TEST_F(DamageTrackerTest, verifyDamageForNewUnchangedLayer)
clearDamageForAllSurfaces(root.get());
{
- scoped_ptr<LayerImpl> child2 = LayerImpl::create(3);
+ scoped_ptr<LayerImpl> child2 = LayerImpl::create(&m_hostImpl, 3);
child2->setPosition(gfx::PointF(400, 380));
child2->setAnchorPoint(gfx::PointF());
child2->setBounds(gfx::Size(6, 8));
@@ -595,7 +606,7 @@ TEST_F(DamageTrackerTest, verifyDamageForMultipleLayers)
// In this test we don't want the above tree manipulation to be considered part of the same frame.
clearDamageForAllSurfaces(root.get());
{
- scoped_ptr<LayerImpl> child2 = LayerImpl::create(3);
+ scoped_ptr<LayerImpl> child2 = LayerImpl::create(&m_hostImpl, 3);
child2->setPosition(gfx::PointF(400, 380));
child2->setAnchorPoint(gfx::PointF());
child2->setBounds(gfx::Size(6, 8));
@@ -816,7 +827,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplica)
// contentBounds of the surface.
grandChild2->setPosition(gfx::PointF(180, 180));
{
- scoped_ptr<LayerImpl> grandChild3 = LayerImpl::create(6);
+ scoped_ptr<LayerImpl> grandChild3 = LayerImpl::create(&m_hostImpl, 6);
grandChild3->setPosition(gfx::PointF(240, 240));
grandChild3->setAnchorPoint(gfx::PointF());
grandChild3->setBounds(gfx::Size(10, 10));
@@ -831,7 +842,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplica)
//
clearDamageForAllSurfaces(root.get());
{
- scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(7);
+ scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(&m_hostImpl, 7);
grandChild1Replica->setPosition(gfx::PointF());
grandChild1Replica->setAnchorPoint(gfx::PointF());
gfx::Transform reflection;
@@ -899,7 +910,7 @@ TEST_F(DamageTrackerTest, verifyDamageForMask)
// Set up the mask layer.
{
- scoped_ptr<LayerImpl> maskLayer = LayerImpl::create(3);
+ scoped_ptr<LayerImpl> maskLayer = LayerImpl::create(&m_hostImpl, 3);
maskLayer->setPosition(child->position());
maskLayer->setAnchorPoint(gfx::PointF());
maskLayer->setBounds(child->bounds());
@@ -911,7 +922,7 @@ TEST_F(DamageTrackerTest, verifyDamageForMask)
// Add opacity and a grandChild so that the render surface persists even after we remove the mask.
child->setOpacity(0.5);
{
- scoped_ptr<LayerImpl> grandChild = LayerImpl::create(4);
+ scoped_ptr<LayerImpl> grandChild = LayerImpl::create(&m_hostImpl, 4);
grandChild->setPosition(gfx::PointF(2, 2));
grandChild->setAnchorPoint(gfx::PointF());
grandChild->setBounds(gfx::Size(2, 2));
@@ -984,7 +995,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplicaMask)
// Create a reflection about the left edge of grandChild1.
{
- scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(6);
+ scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(&m_hostImpl, 6);
grandChild1Replica->setPosition(gfx::PointF());
grandChild1Replica->setAnchorPoint(gfx::PointF());
gfx::Transform reflection;
@@ -996,7 +1007,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplicaMask)
// Set up the mask layer on the replica layer
{
- scoped_ptr<LayerImpl> replicaMaskLayer = LayerImpl::create(7);
+ scoped_ptr<LayerImpl> replicaMaskLayer = LayerImpl::create(&m_hostImpl, 7);
replicaMaskLayer->setPosition(gfx::PointF());
replicaMaskLayer->setAnchorPoint(gfx::PointF());
replicaMaskLayer->setBounds(grandChild1->bounds());
@@ -1046,7 +1057,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplicaMaskWithAnchor)
grandChild1->setAnchorPoint(gfx::PointF(1, 0)); // This is not exactly the anchor being tested, but by convention its expected to be the same as the replica's anchor point.
{
- scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(6);
+ scoped_ptr<LayerImpl> grandChild1Replica = LayerImpl::create(&m_hostImpl, 6);
grandChild1Replica->setPosition(gfx::PointF());
grandChild1Replica->setAnchorPoint(gfx::PointF(1, 0)); // This is the anchor being tested.
gfx::Transform reflection;
@@ -1058,7 +1069,7 @@ TEST_F(DamageTrackerTest, verifyDamageForReplicaMaskWithAnchor)
// Set up the mask layer on the replica layer
{
- scoped_ptr<LayerImpl> replicaMaskLayer = LayerImpl::create(7);
+ scoped_ptr<LayerImpl> replicaMaskLayer = LayerImpl::create(&m_hostImpl, 7);
replicaMaskLayer->setPosition(gfx::PointF());
replicaMaskLayer->setAnchorPoint(gfx::PointF()); // note, this is not the anchor being tested.
replicaMaskLayer->setBounds(grandChild1->bounds());
@@ -1112,7 +1123,7 @@ TEST_F(DamageTrackerTest, verifyDamageForEmptyLayerList)
// Though it should never happen, its a good idea to verify that the damage tracker
// does not crash when it receives an empty layerList.
- scoped_ptr<LayerImpl> root = LayerImpl::create(1);
+ scoped_ptr<LayerImpl> root = LayerImpl::create(&m_hostImpl, 1);
root->createRenderSurface();
ASSERT_TRUE(root == root->renderTarget());
« no previous file with comments | « cc/cc_tests.gyp ('k') | cc/delegated_renderer_layer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698