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

Side by Side Diff: cc/layer_tree_host_common_unittest.cc

Issue 11503005: cc: Refactor content scale/bounds into draw properties (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layer_tree_host_common.h" 5 #include "cc/layer_tree_host_common.h"
6 6
7 #include "cc/content_layer.h" 7 #include "cc/content_layer.h"
8 #include "cc/content_layer_client.h" 8 #include "cc/content_layer_client.h"
9 #include "cc/layer.h" 9 #include "cc/layer.h"
10 #include "cc/layer_animation_controller.h" 10 #include "cc/layer_animation_controller.h"
(...skipping 2390 matching lines...) Expand 10 before | Expand all | Expand 10 after
2401 2401
2402 gfx::Transform identityMatrix; 2402 gfx::Transform identityMatrix;
2403 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2403 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2404 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(3, 4), false); 2404 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(3, 4), false);
2405 setLayerPropertiesForTesting(renderSurface2.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(7, 13), false); 2405 setLayerPropertiesForTesting(renderSurface2.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(7, 13), false);
2406 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false); 2406 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false);
2407 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2407 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2408 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2408 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2409 2409
2410 const double deviceScaleFactor = 2; 2410 const double deviceScaleFactor = 2;
2411 root->setContentsScale(deviceScaleFactor); 2411 root->setIdealContentsScale(deviceScaleFactor);
2412 renderSurface1->setContentsScale(deviceScaleFactor); 2412 renderSurface1->setIdealContentsScale(deviceScaleFactor);
2413 renderSurface2->setContentsScale(deviceScaleFactor); 2413 renderSurface2->setIdealContentsScale(deviceScaleFactor);
2414 child1->setContentsScale(deviceScaleFactor); 2414 child1->setIdealContentsScale(deviceScaleFactor);
2415 child2->setContentsScale(deviceScaleFactor); 2415 child2->setIdealContentsScale(deviceScaleFactor);
2416 child3->setContentsScale(deviceScaleFactor); 2416 child3->setIdealContentsScale(deviceScaleFactor);
2417 2417
2418 root->setMasksToBounds(true); 2418 root->setMasksToBounds(true);
2419 renderSurface1->setForceRenderSurface(true); 2419 renderSurface1->setForceRenderSurface(true);
2420 renderSurface2->setForceRenderSurface(true); 2420 renderSurface2->setForceRenderSurface(true);
2421 executeCalculateDrawProperties(root.get(), deviceScaleFactor); 2421 executeCalculateDrawProperties(root.get(), deviceScaleFactor);
2422 2422
2423 ASSERT_TRUE(renderSurface1->renderSurface()); 2423 ASSERT_TRUE(renderSurface1->renderSurface());
2424 ASSERT_TRUE(renderSurface2->renderSurface()); 2424 ASSERT_TRUE(renderSurface2->renderSurface());
2425 2425
2426 // DrawableContentRects for all layers and surfaces are scaled by deviceScal eFactor. 2426 // DrawableContentRects for all layers and surfaces are scaled by deviceScal eFactor.
(...skipping 1544 matching lines...) Expand 10 before | Expand all | Expand 10 after
3971 resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTouchHandlerRe gion(testPoint, renderSurfaceLayerList); 3971 resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTouchHandlerRe gion(testPoint, renderSurfaceLayerList);
3972 ASSERT_TRUE(resultLayer); 3972 ASSERT_TRUE(resultLayer);
3973 EXPECT_EQ(456, resultLayer->id()); 3973 EXPECT_EQ(456, resultLayer->id());
3974 } 3974 }
3975 3975
3976 class NoScaleContentLayer : public ContentLayer 3976 class NoScaleContentLayer : public ContentLayer
3977 { 3977 {
3978 public: 3978 public:
3979 static scoped_refptr<NoScaleContentLayer> create(ContentLayerClient* client) { return make_scoped_refptr(new NoScaleContentLayer(client)); } 3979 static scoped_refptr<NoScaleContentLayer> create(ContentLayerClient* client) { return make_scoped_refptr(new NoScaleContentLayer(client)); }
3980 3980
3981 virtual gfx::Size contentBounds() const OVERRIDE { return bounds(); } 3981 virtual void didUpdateBounds() OVERRIDE
3982 virtual float contentsScaleX() const OVERRIDE { return 1.0; } 3982 {
3983 virtual float contentsScaleY() const OVERRIDE { return 1.0; } 3983 Layer::didUpdateBounds();
3984 }
3985
3986 virtual void setIdealContentsScale(float idealContentsScale) OVERRIDE
3987 {
3988 Layer::setIdealContentsScale(idealContentsScale);
3989 }
3984 3990
3985 protected: 3991 protected:
3986 explicit NoScaleContentLayer(ContentLayerClient* client) : ContentLayer(clie nt) { } 3992 explicit NoScaleContentLayer(ContentLayerClient* client) : ContentLayer(clie nt) { }
3987 virtual ~NoScaleContentLayer() { } 3993 virtual ~NoScaleContentLayer() { }
3988 }; 3994 };
3989 3995
3990 scoped_refptr<NoScaleContentLayer> createNoScaleDrawableContentLayer(ContentLaye rClient* delegate) 3996 scoped_refptr<NoScaleContentLayer> createNoScaleDrawableContentLayer(ContentLaye rClient* delegate)
3991 { 3997 {
3992 scoped_refptr<NoScaleContentLayer> toReturn = NoScaleContentLayer::create(de legate); 3998 scoped_refptr<NoScaleContentLayer> toReturn = NoScaleContentLayer::create(de legate);
3993 toReturn->setIsDrawable(true); 3999 toReturn->setIsDrawable(true);
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
4527 setLayerPropertiesForTesting(duplicateChildNonOwner.get(), identityMatrix, i dentityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 10), true); 4533 setLayerPropertiesForTesting(duplicateChildNonOwner.get(), identityMatrix, i dentityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 10), true);
4528 4534
4529 parent->addChild(child); 4535 parent->addChild(child);
4530 child->addChild(duplicateChildNonOwner); 4536 child->addChild(duplicateChildNonOwner);
4531 child->setReplicaLayer(replica.get()); 4537 child->setReplicaLayer(replica.get());
4532 4538
4533 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4539 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4534 int dummyMaxTextureSize = 512; 4540 int dummyMaxTextureSize = 512;
4535 4541
4536 const double deviceScaleFactor = 1.5; 4542 const double deviceScaleFactor = 1.5;
4537 parent->setContentsScale(deviceScaleFactor); 4543 parent->setIdealContentsScale(deviceScaleFactor);
4538 child->setContentsScale(deviceScaleFactor); 4544 child->setIdealContentsScale(deviceScaleFactor);
4539 duplicateChildNonOwner->setContentsScale(deviceScaleFactor); 4545 duplicateChildNonOwner->setIdealContentsScale(deviceScaleFactor);
4540 replica->setContentsScale(deviceScaleFactor); 4546 replica->setIdealContentsScale(deviceScaleFactor);
4541 4547
4542 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4548 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4543 4549
4544 // We should have two render surfaces. The root's render surface and child's 4550 // We should have two render surfaces. The root's render surface and child's
4545 // render surface (it needs one because it has a replica layer). 4551 // render surface (it needs one because it has a replica layer).
4546 EXPECT_EQ(2u, renderSurfaceLayerList.size()); 4552 EXPECT_EQ(2u, renderSurfaceLayerList.size());
4547 4553
4548 gfx::Transform expectedParentTransform; 4554 gfx::Transform expectedParentTransform;
4549 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform()); 4555 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform());
4550 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->drawTransfo rm()); 4556 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->drawTransfo rm());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
4610 setLayerPropertiesForTesting(duplicateChildNonOwner.get(), identityMatrix, i dentityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(13, 11), true); 4616 setLayerPropertiesForTesting(duplicateChildNonOwner.get(), identityMatrix, i dentityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(13, 11), true);
4611 4617
4612 parent->addChild(child); 4618 parent->addChild(child);
4613 child->addChild(duplicateChildNonOwner); 4619 child->addChild(duplicateChildNonOwner);
4614 child->setReplicaLayer(replica.get()); 4620 child->setReplicaLayer(replica.get());
4615 4621
4616 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4622 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4617 int dummyMaxTextureSize = 512; 4623 int dummyMaxTextureSize = 512;
4618 4624
4619 const float deviceScaleFactor = 1.7f; 4625 const float deviceScaleFactor = 1.7f;
4620 parent->setContentsScale(deviceScaleFactor); 4626 parent->setIdealContentsScale(deviceScaleFactor);
4621 child->setContentsScale(deviceScaleFactor); 4627 child->setIdealContentsScale(deviceScaleFactor);
4622 duplicateChildNonOwner->setContentsScale(deviceScaleFactor); 4628 duplicateChildNonOwner->setIdealContentsScale(deviceScaleFactor);
4623 replica->setContentsScale(deviceScaleFactor); 4629 replica->setIdealContentsScale(deviceScaleFactor);
4624 4630
4625 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4631 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4626 4632
4627 // We should have two render surfaces. The root's render surface and child's 4633 // We should have two render surfaces. The root's render surface and child's
4628 // render surface (it needs one because it has a replica layer). 4634 // render surface (it needs one because it has a replica layer).
4629 EXPECT_EQ(2u, renderSurfaceLayerList.size()); 4635 EXPECT_EQ(2u, renderSurfaceLayerList.size());
4630 4636
4631 gfx::Transform identityTransform; 4637 gfx::Transform identityTransform;
4632 4638
4633 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->screenSpaceTransf orm()); 4639 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->screenSpaceTransf orm());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
4689 child->addChild(grandChild); 4695 child->addChild(grandChild);
4690 child->setOpacity(0.5f); 4696 child->setOpacity(0.5f);
4691 4697
4692 executeCalculateDrawProperties(root.get()); 4698 executeCalculateDrawProperties(root.get());
4693 4699
4694 EXPECT_FALSE(child->renderSurface()); 4700 EXPECT_FALSE(child->renderSurface());
4695 } 4701 }
4696 4702
4697 } // namespace 4703 } // namespace
4698 } // namespace cc 4704 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698