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

Side by Side Diff: cc/layer_tree_host_common_unittest.cc

Issue 11280263: Organize internal properties of cc/ layer types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed all feedback so far 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 setLayerPropertiesForTestingInternal<Layer>(layer, transform, sublayerTransf orm, anchor, position, bounds, preserves3D); 42 setLayerPropertiesForTestingInternal<Layer>(layer, transform, sublayerTransf orm, anchor, position, bounds, preserves3D);
43 layer->setAutomaticallyComputeRasterScale(true); 43 layer->setAutomaticallyComputeRasterScale(true);
44 } 44 }
45 45
46 void setLayerPropertiesForTesting(LayerImpl* layer, const gfx::Transform& transf orm, const gfx::Transform& sublayerTransform, const gfx::PointF& anchor, const g fx::PointF& position, const gfx::Size& bounds, bool preserves3D) 46 void setLayerPropertiesForTesting(LayerImpl* layer, const gfx::Transform& transf orm, const gfx::Transform& sublayerTransform, const gfx::PointF& anchor, const g fx::PointF& position, const gfx::Size& bounds, bool preserves3D)
47 { 47 {
48 setLayerPropertiesForTestingInternal<LayerImpl>(layer, transform, sublayerTr ansform, anchor, position, bounds, preserves3D); 48 setLayerPropertiesForTestingInternal<LayerImpl>(layer, transform, sublayerTr ansform, anchor, position, bounds, preserves3D);
49 layer->setContentBounds(bounds); 49 layer->setContentBounds(bounds);
50 } 50 }
51 51
52 void executeCalculateDrawTransformsAndVisibility(Layer* rootLayer, float deviceS caleFactor = 1, float pageScaleFactor = 1) 52 void executeCalculateDrawProperties(Layer* rootLayer, float deviceScaleFactor = 1, float pageScaleFactor = 1)
53 { 53 {
54 gfx::Transform identityMatrix; 54 gfx::Transform identityMatrix;
55 std::vector<scoped_refptr<Layer> > dummyRenderSurfaceLayerList; 55 std::vector<scoped_refptr<Layer> > dummyRenderSurfaceLayerList;
56 int dummyMaxTextureSize = 512; 56 int dummyMaxTextureSize = 512;
57 gfx::Size deviceViewportSize = gfx::Size(rootLayer->bounds().width() * devic eScaleFactor, rootLayer->bounds().height() * deviceScaleFactor); 57 gfx::Size deviceViewportSize = gfx::Size(rootLayer->bounds().width() * devic eScaleFactor, rootLayer->bounds().height() * deviceScaleFactor);
58 58
59 // We are probably not testing what is intended if the rootLayer bounds are empty. 59 // We are probably not testing what is intended if the rootLayer bounds are empty.
60 DCHECK(!rootLayer->bounds().IsEmpty()); 60 DCHECK(!rootLayer->bounds().IsEmpty());
61 LayerTreeHostCommon::calculateDrawTransforms(rootLayer, deviceViewportSize, deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, dummyRenderSurfaceLayer List); 61 LayerTreeHostCommon::calculateDrawProperties(rootLayer, deviceViewportSize, deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, dummyRenderSurfaceLayer List);
62 } 62 }
63 63
64 void executeCalculateDrawTransformsAndVisibility(LayerImpl* rootLayer, float dev iceScaleFactor = 1, float pageScaleFactor = 1) 64 void executeCalculateDrawProperties(LayerImpl* rootLayer, float deviceScaleFacto r = 1, float pageScaleFactor = 1)
65 { 65 {
66 // Note: this version skips layer sorting. 66 // Note: this version skips layer sorting.
67 67
68 gfx::Transform identityMatrix; 68 gfx::Transform identityMatrix;
69 std::vector<LayerImpl*> dummyRenderSurfaceLayerList; 69 std::vector<LayerImpl*> dummyRenderSurfaceLayerList;
70 int dummyMaxTextureSize = 512; 70 int dummyMaxTextureSize = 512;
71 gfx::Size deviceViewportSize = gfx::Size(rootLayer->bounds().width() * devic eScaleFactor, rootLayer->bounds().height() * deviceScaleFactor); 71 gfx::Size deviceViewportSize = gfx::Size(rootLayer->bounds().width() * devic eScaleFactor, rootLayer->bounds().height() * deviceScaleFactor);
72 72
73 // We are probably not testing what is intended if the rootLayer bounds are empty. 73 // We are probably not testing what is intended if the rootLayer bounds are empty.
74 DCHECK(!rootLayer->bounds().IsEmpty()); 74 DCHECK(!rootLayer->bounds().IsEmpty());
75 LayerTreeHostCommon::calculateDrawTransforms(rootLayer, deviceViewportSize, deviceScaleFactor, pageScaleFactor, 0, dummyMaxTextureSize, dummyRenderSurfaceLa yerList); 75 LayerTreeHostCommon::calculateDrawProperties(rootLayer, deviceViewportSize, deviceScaleFactor, pageScaleFactor, 0, dummyMaxTextureSize, dummyRenderSurfaceLa yerList);
76 } 76 }
77 77
78 scoped_ptr<LayerImpl> createTreeForFixedPositionTests() 78 scoped_ptr<LayerImpl> createTreeForFixedPositionTests()
79 { 79 {
80 scoped_ptr<LayerImpl> root = LayerImpl::create(1); 80 scoped_ptr<LayerImpl> root = LayerImpl::create(1);
81 scoped_ptr<LayerImpl> child = LayerImpl::create(2); 81 scoped_ptr<LayerImpl> child = LayerImpl::create(2);
82 scoped_ptr<LayerImpl> grandChild = LayerImpl::create(3); 82 scoped_ptr<LayerImpl> grandChild = LayerImpl::create(3);
83 scoped_ptr<LayerImpl> greatGrandChild = LayerImpl::create(4); 83 scoped_ptr<LayerImpl> greatGrandChild = LayerImpl::create(4);
84 84
85 gfx::Transform IdentityMatrix; 85 gfx::Transform IdentityMatrix;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 scoped_refptr<Layer> child = Layer::create(); 144 scoped_refptr<Layer> child = Layer::create();
145 scoped_refptr<Layer> grandChild = Layer::create(); 145 scoped_refptr<Layer> grandChild = Layer::create();
146 parent->addChild(child); 146 parent->addChild(child);
147 child->addChild(grandChild); 147 child->addChild(grandChild);
148 148
149 gfx::Transform identityMatrix; 149 gfx::Transform identityMatrix;
150 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 150 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
151 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false); 151 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false);
152 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false); 152 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false);
153 153
154 executeCalculateDrawTransformsAndVisibility(parent.get()); 154 executeCalculateDrawProperties(parent.get());
155 155
156 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform()); 156 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform());
157 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->screenSpaceTransform( )); 157 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->screenSpaceTransform( ));
158 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ; 158 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ;
159 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->screenSpaceTrans form()); 159 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->screenSpaceTrans form());
160 } 160 }
161 161
162 TEST(LayerTreeHostCommonTest, verifyTransformsForSingleLayer) 162 TEST(LayerTreeHostCommonTest, verifyTransformsForSingleLayer)
163 { 163 {
164 gfx::Transform identityMatrix; 164 gfx::Transform identityMatrix;
165 scoped_refptr<Layer> layer = Layer::create(); 165 scoped_refptr<Layer> layer = Layer::create();
166 166
167 scoped_refptr<Layer> root = Layer::create(); 167 scoped_refptr<Layer> root = Layer::create();
168 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(1, 2), false); 168 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(1, 2), false);
169 root->addChild(layer); 169 root->addChild(layer);
170 170
171 // Case 1: setting the sublayer transform should not affect this layer's dra w transform or screen-space transform. 171 // Case 1: setting the sublayer transform should not affect this layer's dra w transform or screen-space transform.
172 gfx::Transform arbitraryTranslation; 172 gfx::Transform arbitraryTranslation;
173 arbitraryTranslation.Translate(10, 20); 173 arbitraryTranslation.Translate(10, 20);
174 setLayerPropertiesForTesting(layer.get(), identityMatrix, arbitraryTranslati on, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 174 setLayerPropertiesForTesting(layer.get(), identityMatrix, arbitraryTranslati on, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
175 executeCalculateDrawTransformsAndVisibility(root.get()); 175 executeCalculateDrawProperties(root.get());
176 gfx::Transform expectedDrawTransform = identityMatrix; 176 gfx::Transform expectedDrawTransform = identityMatrix;
177 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedDrawTransform, layer->drawTransform( )); 177 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedDrawTransform, layer->drawTransform( ));
178 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( )); 178 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( ));
179 179
180 // Case 2: Setting the bounds of the layer should not affect either the draw transform or the screenspace transform. 180 // Case 2: Setting the bounds of the layer should not affect either the draw transform or the screenspace transform.
181 gfx::Transform translationToCenter; 181 gfx::Transform translationToCenter;
182 translationToCenter.Translate(5, 6); 182 translationToCenter.Translate(5, 6);
183 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false); 183 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false);
184 executeCalculateDrawTransformsAndVisibility(root.get()); 184 executeCalculateDrawProperties(root.get());
185 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->drawTransform()); 185 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->drawTransform());
186 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( )); 186 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( ));
187 187
188 // Case 3: The anchor point by itself (without a layer transform) should hav e no effect on the transforms. 188 // Case 3: The anchor point by itself (without a layer transform) should hav e no effect on the transforms.
189 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false); 189 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false);
190 executeCalculateDrawTransformsAndVisibility(root.get()); 190 executeCalculateDrawProperties(root.get());
191 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->drawTransform()); 191 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->drawTransform());
192 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( )); 192 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, layer->screenSpaceTransform( ));
193 193
194 // Case 4: A change in actual position affects both the draw transform and s creen space transform. 194 // Case 4: A change in actual position affects both the draw transform and s creen space transform.
195 gfx::Transform positionTransform; 195 gfx::Transform positionTransform;
196 positionTransform.Translate(0, 1.2); 196 positionTransform.Translate(0, 1.2);
197 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0.25, 0.25), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false); 197 setLayerPropertiesForTesting(layer.get(), identityMatrix, identityMatrix, gf x::PointF(0.25, 0.25), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false);
198 executeCalculateDrawTransformsAndVisibility(root.get()); 198 executeCalculateDrawProperties(root.get());
199 EXPECT_TRANSFORMATION_MATRIX_EQ(positionTransform, layer->drawTransform()); 199 EXPECT_TRANSFORMATION_MATRIX_EQ(positionTransform, layer->drawTransform());
200 EXPECT_TRANSFORMATION_MATRIX_EQ(positionTransform, layer->screenSpaceTransfo rm()); 200 EXPECT_TRANSFORMATION_MATRIX_EQ(positionTransform, layer->screenSpaceTransfo rm());
201 201
202 // Case 5: In the correct sequence of transforms, the layer transform should pre-multiply the translationToCenter. This is easily tested by 202 // Case 5: In the correct sequence of transforms, the layer transform should pre-multiply the translationToCenter. This is easily tested by
203 // using a scale transform, because scale and translation are not co mmutative. 203 // using a scale transform, because scale and translation are not co mmutative.
204 gfx::Transform layerTransform; 204 gfx::Transform layerTransform;
205 layerTransform.Scale3d(2, 2, 1); 205 layerTransform.Scale3d(2, 2, 1);
206 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false); 206 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false);
207 executeCalculateDrawTransformsAndVisibility(root.get()); 207 executeCalculateDrawProperties(root.get());
208 EXPECT_TRANSFORMATION_MATRIX_EQ(layerTransform, layer->drawTransform()); 208 EXPECT_TRANSFORMATION_MATRIX_EQ(layerTransform, layer->drawTransform());
209 EXPECT_TRANSFORMATION_MATRIX_EQ(layerTransform, layer->screenSpaceTransform( )); 209 EXPECT_TRANSFORMATION_MATRIX_EQ(layerTransform, layer->screenSpaceTransform( ));
210 210
211 // Case 6: The layer transform should occur with respect to the anchor point . 211 // Case 6: The layer transform should occur with respect to the anchor point .
212 gfx::Transform translationToAnchor; 212 gfx::Transform translationToAnchor;
213 translationToAnchor.Translate(5, 0); 213 translationToAnchor.Translate(5, 0);
214 gfx::Transform expectedResult = translationToAnchor * layerTransform * MathU til::inverse(translationToAnchor); 214 gfx::Transform expectedResult = translationToAnchor * layerTransform * MathU til::inverse(translationToAnchor);
215 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0.5, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false); 215 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0.5, 0), gfx::PointF(0, 0), gfx::Size(10, 12), false);
216 executeCalculateDrawTransformsAndVisibility(root.get()); 216 executeCalculateDrawProperties(root.get());
217 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->drawTransform()); 217 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->drawTransform());
218 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->screenSpaceTransform( )); 218 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->screenSpaceTransform( ));
219 219
220 // Case 7: Verify that position pre-multiplies the layer transform. 220 // Case 7: Verify that position pre-multiplies the layer transform.
221 // The current implementation of calculateDrawTransforms does this i mplicitly, but it is 221 // The current implementation of calculateDrawProperties does this i mplicitly, but it is
222 // still worth testing to detect accidental regressions. 222 // still worth testing to detect accidental regressions.
223 expectedResult = positionTransform * translationToAnchor * layerTransform * MathUtil::inverse(translationToAnchor); 223 expectedResult = positionTransform * translationToAnchor * layerTransform * MathUtil::inverse(translationToAnchor);
224 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0.5, 0), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false); 224 setLayerPropertiesForTesting(layer.get(), layerTransform, identityMatrix, gf x::PointF(0.5, 0), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false);
225 executeCalculateDrawTransformsAndVisibility(root.get()); 225 executeCalculateDrawProperties(root.get());
226 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->drawTransform()); 226 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->drawTransform());
227 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->screenSpaceTransform( )); 227 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedResult, layer->screenSpaceTransform( ));
228 } 228 }
229 229
230 TEST(LayerTreeHostCommonTest, verifyTransformsForSimpleHierarchy) 230 TEST(LayerTreeHostCommonTest, verifyTransformsForSimpleHierarchy)
231 { 231 {
232 gfx::Transform identityMatrix; 232 gfx::Transform identityMatrix;
233 scoped_refptr<Layer> root = Layer::create(); 233 scoped_refptr<Layer> root = Layer::create();
234 scoped_refptr<Layer> parent = Layer::create(); 234 scoped_refptr<Layer> parent = Layer::create();
235 scoped_refptr<Layer> child = Layer::create(); 235 scoped_refptr<Layer> child = Layer::create();
236 scoped_refptr<Layer> grandChild = Layer::create(); 236 scoped_refptr<Layer> grandChild = Layer::create();
237 root->addChild(parent); 237 root->addChild(parent);
238 parent->addChild(child); 238 parent->addChild(child);
239 child->addChild(grandChild); 239 child->addChild(grandChild);
240 240
241 // One-time setup of root layer 241 // One-time setup of root layer
242 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(1, 2), false); 242 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(1, 2), false);
243 243
244 // Case 1: parent's anchorPoint should not affect child or grandChild. 244 // Case 1: parent's anchorPoint should not affect child or grandChild.
245 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false); 245 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false);
246 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 246 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
247 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false); 247 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false);
248 executeCalculateDrawTransformsAndVisibility(root.get()); 248 executeCalculateDrawProperties(root.get());
249 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform()); 249 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform());
250 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->screenSpaceTransform( )); 250 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->screenSpaceTransform( ));
251 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ; 251 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ;
252 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->screenSpaceTrans form()); 252 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->screenSpaceTrans form());
253 253
254 // Case 2: parent's position affects child and grandChild. 254 // Case 2: parent's position affects child and grandChild.
255 gfx::Transform parentPositionTransform; 255 gfx::Transform parentPositionTransform;
256 parentPositionTransform.Translate(0, 1.2); 256 parentPositionTransform.Translate(0, 1.2);
257 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0.25, 0.25), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false); 257 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0.25, 0.25), gfx::PointF(0, 1.2f), gfx::Size(10, 12), false);
258 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 258 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
259 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false); 259 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false);
260 executeCalculateDrawTransformsAndVisibility(root.get()); 260 executeCalculateDrawProperties(root.get());
261 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, child->drawTransfor m()); 261 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, child->drawTransfor m());
262 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, child->screenSpaceT ransform()); 262 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, child->screenSpaceT ransform());
263 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, grandChild->drawTra nsform()); 263 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, grandChild->drawTra nsform());
264 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, grandChild->screenS paceTransform()); 264 EXPECT_TRANSFORMATION_MATRIX_EQ(parentPositionTransform, grandChild->screenS paceTransform());
265 265
266 // Case 3: parent's local transform affects child and grandchild 266 // Case 3: parent's local transform affects child and grandchild
267 gfx::Transform parentLayerTransform; 267 gfx::Transform parentLayerTransform;
268 parentLayerTransform.Scale3d(2, 2, 1); 268 parentLayerTransform.Scale3d(2, 2, 1);
269 gfx::Transform parentTranslationToAnchor; 269 gfx::Transform parentTranslationToAnchor;
270 parentTranslationToAnchor.Translate(2.5, 3); 270 parentTranslationToAnchor.Translate(2.5, 3);
271 gfx::Transform parentCompositeTransform = parentTranslationToAnchor * parent LayerTransform * MathUtil::inverse(parentTranslationToAnchor); 271 gfx::Transform parentCompositeTransform = parentTranslationToAnchor * parent LayerTransform * MathUtil::inverse(parentTranslationToAnchor);
272 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, identityMat rix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false); 272 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, identityMat rix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false);
273 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 273 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
274 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false); 274 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false);
275 executeCalculateDrawTransformsAndVisibility(root.get()); 275 executeCalculateDrawProperties(root.get());
276 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm()); 276 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm());
277 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform()); 277 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform());
278 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->drawTr ansform()); 278 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->drawTr ansform());
279 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->screen SpaceTransform()); 279 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->screen SpaceTransform());
280 280
281 // Case 4: parent's sublayerMatrix affects child and grandchild 281 // Case 4: parent's sublayerMatrix affects child and grandchild
282 // scaling is used here again so that the correct sequence of transf orms is properly tested. 282 // scaling is used here again so that the correct sequence of transf orms is properly tested.
283 // Note that preserves3D is false, but the sublayer matrix should re tain its 3D properties when given to child. 283 // Note that preserves3D is false, but the sublayer matrix should re tain its 3D properties when given to child.
284 // But then, the child also does not preserve3D. When it gives its h ierarchy to the grandChild, it should be flattened to 2D. 284 // But then, the child also does not preserve3D. When it gives its h ierarchy to the grandChild, it should be flattened to 2D.
285 gfx::Transform parentSublayerMatrix; 285 gfx::Transform parentSublayerMatrix;
286 parentSublayerMatrix.Scale3d(10, 10, 3.3); 286 parentSublayerMatrix.Scale3d(10, 10, 3.3);
287 gfx::Transform parentTranslationToCenter; 287 gfx::Transform parentTranslationToCenter;
288 parentTranslationToCenter.Translate(5, 6); 288 parentTranslationToCenter.Translate(5, 6);
289 // Sublayer matrix is applied to the center of the parent layer. 289 // Sublayer matrix is applied to the center of the parent layer.
290 parentCompositeTransform = parentTranslationToAnchor * parentLayerTransform * MathUtil::inverse(parentTranslationToAnchor) 290 parentCompositeTransform = parentTranslationToAnchor * parentLayerTransform * MathUtil::inverse(parentTranslationToAnchor)
291 * parentTranslationToCenter * parentSublayerMatrix * MathUtil::inver se(parentTranslationToCenter); 291 * parentTranslationToCenter * parentSublayerMatrix * MathUtil::inver se(parentTranslationToCenter);
292 gfx::Transform flattenedCompositeTransform = MathUtil::to2dTransform(parentC ompositeTransform); 292 gfx::Transform flattenedCompositeTransform = MathUtil::to2dTransform(parentC ompositeTransform);
293 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ; 293 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ;
294 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 294 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
295 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false); 295 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false);
296 executeCalculateDrawTransformsAndVisibility(root.get()); 296 executeCalculateDrawProperties(root.get());
297 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm()); 297 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm());
298 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform()); 298 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform());
299 EXPECT_TRANSFORMATION_MATRIX_EQ(flattenedCompositeTransform, grandChild->dra wTransform()); 299 EXPECT_TRANSFORMATION_MATRIX_EQ(flattenedCompositeTransform, grandChild->dra wTransform());
300 EXPECT_TRANSFORMATION_MATRIX_EQ(flattenedCompositeTransform, grandChild->scr eenSpaceTransform()); 300 EXPECT_TRANSFORMATION_MATRIX_EQ(flattenedCompositeTransform, grandChild->scr eenSpaceTransform());
301 301
302 // Case 5: same as Case 4, except that child does preserve 3D, so the grandC hild should receive the non-flattened composite transform. 302 // Case 5: same as Case 4, except that child does preserve 3D, so the grandC hild should receive the non-flattened composite transform.
303 // 303 //
304 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ; 304 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ;
305 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), true); 305 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), true);
306 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false); 306 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(76, 78), false);
307 executeCalculateDrawTransformsAndVisibility(root.get()); 307 executeCalculateDrawProperties(root.get());
308 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm()); 308 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->drawTransfo rm());
309 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform()); 309 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform());
310 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->drawTr ansform()); 310 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->drawTr ansform());
311 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->screen SpaceTransform()); 311 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, grandChild->screen SpaceTransform());
312 } 312 }
313 313
314 TEST(LayerTreeHostCommonTest, verifyTransformsForSingleRenderSurface) 314 TEST(LayerTreeHostCommonTest, verifyTransformsForSingleRenderSurface)
315 { 315 {
316 scoped_refptr<Layer> root = Layer::create(); 316 scoped_refptr<Layer> root = Layer::create();
317 scoped_refptr<Layer> parent = Layer::create(); 317 scoped_refptr<Layer> parent = Layer::create();
(...skipping 25 matching lines...) Expand all
343 gfx::Transform surfaceSublayerTransform; 343 gfx::Transform surfaceSublayerTransform;
344 surfaceSublayerTransform.Scale(parentCompositeScale.x(), parentCompositeScal e.y()); 344 surfaceSublayerTransform.Scale(parentCompositeScale.x(), parentCompositeScal e.y());
345 gfx::Transform surfaceSublayerCompositeTransform = parentCompositeTransform * MathUtil::inverse(surfaceSublayerTransform); 345 gfx::Transform surfaceSublayerCompositeTransform = parentCompositeTransform * MathUtil::inverse(surfaceSublayerTransform);
346 346
347 // Child's render surface should not exist yet. 347 // Child's render surface should not exist yet.
348 ASSERT_FALSE(child->renderSurface()); 348 ASSERT_FALSE(child->renderSurface());
349 349
350 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(100, 120), fals e); 350 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(100, 120), fals e);
351 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 351 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
352 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(8, 10), false); 352 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(8, 10), false);
353 executeCalculateDrawTransformsAndVisibility(root.get()); 353 executeCalculateDrawProperties(root.get());
354 354
355 // Render surface should have been created now. 355 // Render surface should have been created now.
356 ASSERT_TRUE(child->renderSurface()); 356 ASSERT_TRUE(child->renderSurface());
357 ASSERT_EQ(child, child->renderTarget()); 357 ASSERT_EQ(child, child->renderTarget());
358 358
359 // The child layer's draw transform should refer to its new render surface. 359 // The child layer's draw transform should refer to its new render surface.
360 // The screen-space transform, however, should still refer to the root. 360 // The screen-space transform, however, should still refer to the root.
361 EXPECT_TRANSFORMATION_MATRIX_EQ(surfaceSublayerTransform, child->drawTransfo rm()); 361 EXPECT_TRANSFORMATION_MATRIX_EQ(surfaceSublayerTransform, child->drawTransfo rm());
362 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform()); 362 EXPECT_TRANSFORMATION_MATRIX_EQ(parentCompositeTransform, child->screenSpace Transform());
363 363
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 surfaceSublayerTransform.Scale(parentCompositeScale.x(), parentCompositeScal e.y()); 407 surfaceSublayerTransform.Scale(parentCompositeScale.x(), parentCompositeScal e.y());
408 gfx::Transform replicaCompositeTransform = parentCompositeTransform * replic aLayerTransform * MathUtil::inverse(surfaceSublayerTransform); 408 gfx::Transform replicaCompositeTransform = parentCompositeTransform * replic aLayerTransform * MathUtil::inverse(surfaceSublayerTransform);
409 409
410 // Child's render surface should not exist yet. 410 // Child's render surface should not exist yet.
411 ASSERT_FALSE(child->renderSurface()); 411 ASSERT_FALSE(child->renderSurface());
412 412
413 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ; 413 setLayerPropertiesForTesting(parent.get(), parentLayerTransform, parentSubla yerMatrix, gfx::PointF(0.25, 0.25), gfx::PointF(0, 0), gfx::Size(10, 12), false) ;
414 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false); 414 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(16, 18), false);
415 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(-0.5, -0.5), gfx::Size(1, 1), false); 415 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(-0.5, -0.5), gfx::Size(1, 1), false);
416 setLayerPropertiesForTesting(childReplica.get(), replicaLayerTransform, iden tityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false); 416 setLayerPropertiesForTesting(childReplica.get(), replicaLayerTransform, iden tityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(0, 0), false);
417 executeCalculateDrawTransformsAndVisibility(root.get()); 417 executeCalculateDrawProperties(root.get());
418 418
419 // Render surface should have been created now. 419 // Render surface should have been created now.
420 ASSERT_TRUE(child->renderSurface()); 420 ASSERT_TRUE(child->renderSurface());
421 ASSERT_EQ(child, child->renderTarget()); 421 ASSERT_EQ(child, child->renderTarget());
422 422
423 EXPECT_TRANSFORMATION_MATRIX_EQ(replicaCompositeTransform, child->renderTarg et()->renderSurface()->replicaDrawTransform()); 423 EXPECT_TRANSFORMATION_MATRIX_EQ(replicaCompositeTransform, child->renderTarg et()->renderSurface()->replicaDrawTransform());
424 EXPECT_TRANSFORMATION_MATRIX_EQ(replicaCompositeTransform, child->renderTarg et()->renderSurface()->replicaScreenSpaceTransform()); 424 EXPECT_TRANSFORMATION_MATRIX_EQ(replicaCompositeTransform, child->renderTarg et()->renderSurface()->replicaScreenSpaceTransform());
425 } 425 }
426 426
427 TEST(LayerTreeHostCommonTest, verifyTransformsForRenderSurfaceHierarchy) 427 TEST(LayerTreeHostCommonTest, verifyTransformsForRenderSurfaceHierarchy)
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 setLayerPropertiesForTesting(renderSurface2.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 510 setLayerPropertiesForTesting(renderSurface2.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
511 setLayerPropertiesForTesting(childOfRoot.get(), layerTransform, sublayerTran sform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 511 setLayerPropertiesForTesting(childOfRoot.get(), layerTransform, sublayerTran sform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
512 setLayerPropertiesForTesting(childOfRS1.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 512 setLayerPropertiesForTesting(childOfRS1.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
513 setLayerPropertiesForTesting(childOfRS2.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 513 setLayerPropertiesForTesting(childOfRS2.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
514 setLayerPropertiesForTesting(grandChildOfRoot.get(), layerTransform, sublaye rTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 514 setLayerPropertiesForTesting(grandChildOfRoot.get(), layerTransform, sublaye rTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
515 setLayerPropertiesForTesting(grandChildOfRS1.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 515 setLayerPropertiesForTesting(grandChildOfRS1.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
516 setLayerPropertiesForTesting(grandChildOfRS2.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 516 setLayerPropertiesForTesting(grandChildOfRS2.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
517 setLayerPropertiesForTesting(replicaOfRS1.get(), replicaLayerTransform, subl ayerTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(), false); 517 setLayerPropertiesForTesting(replicaOfRS1.get(), replicaLayerTransform, subl ayerTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(), false);
518 setLayerPropertiesForTesting(replicaOfRS2.get(), replicaLayerTransform, subl ayerTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(), false); 518 setLayerPropertiesForTesting(replicaOfRS2.get(), replicaLayerTransform, subl ayerTransform, gfx::PointF(0.25, 0), gfx::PointF(0, 0), gfx::Size(), false);
519 519
520 executeCalculateDrawTransformsAndVisibility(root.get()); 520 executeCalculateDrawProperties(root.get());
521 521
522 // Only layers that are associated with render surfaces should have an actua l renderSurface() value. 522 // Only layers that are associated with render surfaces should have an actua l renderSurface() value.
523 // 523 //
524 ASSERT_TRUE(root->renderSurface()); 524 ASSERT_TRUE(root->renderSurface());
525 ASSERT_FALSE(childOfRoot->renderSurface()); 525 ASSERT_FALSE(childOfRoot->renderSurface());
526 ASSERT_FALSE(grandChildOfRoot->renderSurface()); 526 ASSERT_FALSE(grandChildOfRoot->renderSurface());
527 527
528 ASSERT_TRUE(renderSurface1->renderSurface()); 528 ASSERT_TRUE(renderSurface1->renderSurface());
529 ASSERT_FALSE(childOfRS1->renderSurface()); 529 ASSERT_FALSE(childOfRS1->renderSurface());
530 ASSERT_FALSE(grandChildOfRS1->renderSurface()); 530 ASSERT_FALSE(grandChildOfRS1->renderSurface());
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 // No layers in this test should preserve 3d. 632 // No layers in this test should preserve 3d.
633 ASSERT_FALSE(root->preserves3D()); 633 ASSERT_FALSE(root->preserves3D());
634 ASSERT_FALSE(child->preserves3D()); 634 ASSERT_FALSE(child->preserves3D());
635 ASSERT_FALSE(grandChild->preserves3D()); 635 ASSERT_FALSE(grandChild->preserves3D());
636 636
637 gfx::Transform expectedChildDrawTransform = rotationAboutYAxis; 637 gfx::Transform expectedChildDrawTransform = rotationAboutYAxis;
638 gfx::Transform expectedChildScreenSpaceTransform = rotationAboutYAxis; 638 gfx::Transform expectedChildScreenSpaceTransform = rotationAboutYAxis;
639 gfx::Transform expectedGrandChildDrawTransform = rotationAboutYAxis; // draw s onto child's renderSurface 639 gfx::Transform expectedGrandChildDrawTransform = rotationAboutYAxis; // draw s onto child's renderSurface
640 gfx::Transform expectedGrandChildScreenSpaceTransform = MathUtil::to2dTransf orm(rotationAboutYAxis) * rotationAboutYAxis; 640 gfx::Transform expectedGrandChildScreenSpaceTransform = MathUtil::to2dTransf orm(rotationAboutYAxis) * rotationAboutYAxis;
641 641
642 executeCalculateDrawTransformsAndVisibility(root.get()); 642 executeCalculateDrawProperties(root.get());
643 643
644 // The child's drawTransform should have been taken by its surface. 644 // The child's drawTransform should have been taken by its surface.
645 ASSERT_TRUE(child->renderSurface()); 645 ASSERT_TRUE(child->renderSurface());
646 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildDrawTransform, child->renderSur face()->drawTransform()); 646 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildDrawTransform, child->renderSur face()->drawTransform());
647 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildScreenSpaceTransform, child->re nderSurface()->screenSpaceTransform()); 647 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildScreenSpaceTransform, child->re nderSurface()->screenSpaceTransform());
648 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform()); 648 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform());
649 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildScreenSpaceTransform, child->sc reenSpaceTransform()); 649 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildScreenSpaceTransform, child->sc reenSpaceTransform());
650 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildDrawTransform, grandChild- >drawTransform()); 650 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildDrawTransform, grandChild- >drawTransform());
651 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildScreenSpaceTransform, gran dChild->screenSpaceTransform()); 651 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildScreenSpaceTransform, gran dChild->screenSpaceTransform());
652 } 652 }
(...skipping 13 matching lines...) Expand all
666 // The child height is zero, but has non-zero width that should be accounted for while computing drawTransforms. 666 // The child height is zero, but has non-zero width that should be accounted for while computing drawTransforms.
667 const gfx::Transform identityMatrix; 667 const gfx::Transform identityMatrix;
668 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(), gfx::PointF(), gfx::Size(100, 100), false); 668 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(), gfx::PointF(), gfx::Size(100, 100), false);
669 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 0), false); 669 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 0), false);
670 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 670 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
671 671
672 root->addChild(child); 672 root->addChild(child);
673 child->addChild(grandChild); 673 child->addChild(grandChild);
674 child->setForceRenderSurface(true); 674 child->setForceRenderSurface(true);
675 675
676 executeCalculateDrawTransformsAndVisibility(root.get()); 676 executeCalculateDrawProperties(root.get());
677 677
678 ASSERT_TRUE(child->renderSurface()); 678 ASSERT_TRUE(child->renderSurface());
679 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->renderSurface()->draw Transform()); // This is the real test, the rest are sanity checks. 679 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->renderSurface()->draw Transform()); // This is the real test, the rest are sanity checks.
680 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform()); 680 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform());
681 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ; 681 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ;
682 } 682 }
683 683
684 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceListForRenderSurfaceWithClipped Layer) 684 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceListForRenderSurfaceWithClipped Layer)
685 { 685 {
686 scoped_refptr<Layer> parent = Layer::create(); 686 scoped_refptr<Layer> parent = Layer::create();
687 scoped_refptr<Layer> renderSurface1 = Layer::create(); 687 scoped_refptr<Layer> renderSurface1 = Layer::create();
688 scoped_refptr<LayerWithForcedDrawsContent> child = make_scoped_refptr(new La yerWithForcedDrawsContent()); 688 scoped_refptr<LayerWithForcedDrawsContent> child = make_scoped_refptr(new La yerWithForcedDrawsContent());
689 689
690 const gfx::Transform identityMatrix; 690 const gfx::Transform identityMatrix;
691 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 691 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
692 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 692 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
693 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(30, 30), gfx::Size(10, 10), false); 693 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(30, 30), gfx::Size(10, 10), false);
694 694
695 parent->addChild(renderSurface1); 695 parent->addChild(renderSurface1);
696 parent->setMasksToBounds(true); 696 parent->setMasksToBounds(true);
697 renderSurface1->addChild(child); 697 renderSurface1->addChild(child);
698 renderSurface1->setForceRenderSurface(true); 698 renderSurface1->setForceRenderSurface(true);
699 699
700 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 700 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
701 int dummyMaxTextureSize = 512; 701 int dummyMaxTextureSize = 512;
702 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 702 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
703 703
704 // The child layer's content is entirely outside the parent's clip rect, so the intermediate 704 // The child layer's content is entirely outside the parent's clip rect, so the intermediate
705 // render surface should not be listed here, even if it was forced to be cre ated. Render surfaces without children or visible 705 // render surface should not be listed here, even if it was forced to be cre ated. Render surfaces without children or visible
706 // content are unexpected at draw time (e.g. we might try to create a conten t texture of size 0). 706 // content are unexpected at draw time (e.g. we might try to create a conten t texture of size 0).
707 ASSERT_TRUE(parent->renderSurface()); 707 ASSERT_TRUE(parent->renderSurface());
708 ASSERT_FALSE(renderSurface1->renderSurface()); 708 ASSERT_FALSE(renderSurface1->renderSurface());
709 EXPECT_EQ(1U, renderSurfaceLayerList.size()); 709 EXPECT_EQ(1U, renderSurfaceLayerList.size());
710 } 710 }
711 711
712 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceListForTransparentChild) 712 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceListForTransparentChild)
713 { 713 {
714 scoped_refptr<Layer> parent = Layer::create(); 714 scoped_refptr<Layer> parent = Layer::create();
715 scoped_refptr<Layer> renderSurface1 = Layer::create(); 715 scoped_refptr<Layer> renderSurface1 = Layer::create();
716 scoped_refptr<LayerWithForcedDrawsContent> child = make_scoped_refptr(new La yerWithForcedDrawsContent()); 716 scoped_refptr<LayerWithForcedDrawsContent> child = make_scoped_refptr(new La yerWithForcedDrawsContent());
717 717
718 const gfx::Transform identityMatrix; 718 const gfx::Transform identityMatrix;
719 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 719 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
720 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 720 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
721 721
722 parent->addChild(renderSurface1); 722 parent->addChild(renderSurface1);
723 renderSurface1->addChild(child); 723 renderSurface1->addChild(child);
724 renderSurface1->setForceRenderSurface(true); 724 renderSurface1->setForceRenderSurface(true);
725 renderSurface1->setOpacity(0); 725 renderSurface1->setOpacity(0);
726 726
727 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 727 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
728 int dummyMaxTextureSize = 512; 728 int dummyMaxTextureSize = 512;
729 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 729 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
730 730
731 // Since the layer is transparent, renderSurface1->renderSurface() should no t have gotten added anywhere. 731 // Since the layer is transparent, renderSurface1->renderSurface() should no t have gotten added anywhere.
732 // Also, the drawable content rect should not have been extended by the chil dren. 732 // Also, the drawable content rect should not have been extended by the chil dren.
733 ASSERT_TRUE(parent->renderSurface()); 733 ASSERT_TRUE(parent->renderSurface());
734 EXPECT_EQ(0U, parent->renderSurface()->layerList().size()); 734 EXPECT_EQ(0U, parent->renderSurface()->layerList().size());
735 EXPECT_EQ(1U, renderSurfaceLayerList.size()); 735 EXPECT_EQ(1U, renderSurfaceLayerList.size());
736 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 736 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
737 EXPECT_EQ(gfx::Rect(), parent->drawableContentRect()); 737 EXPECT_EQ(gfx::Rect(), parent->drawableContentRect());
738 } 738 }
739 739
(...skipping 11 matching lines...) Expand all
751 751
752 parent->addChild(renderSurface1); 752 parent->addChild(renderSurface1);
753 renderSurface1->addChild(child); 753 renderSurface1->addChild(child);
754 754
755 // Sanity check before the actual test 755 // Sanity check before the actual test
756 EXPECT_FALSE(parent->renderSurface()); 756 EXPECT_FALSE(parent->renderSurface());
757 EXPECT_FALSE(renderSurface1->renderSurface()); 757 EXPECT_FALSE(renderSurface1->renderSurface());
758 758
759 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 759 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
760 int dummyMaxTextureSize = 512; 760 int dummyMaxTextureSize = 512;
761 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 761 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
762 762
763 // The root layer always creates a renderSurface 763 // The root layer always creates a renderSurface
764 EXPECT_TRUE(parent->renderSurface()); 764 EXPECT_TRUE(parent->renderSurface());
765 EXPECT_TRUE(renderSurface1->renderSurface()); 765 EXPECT_TRUE(renderSurface1->renderSurface());
766 EXPECT_EQ(2U, renderSurfaceLayerList.size()); 766 EXPECT_EQ(2U, renderSurfaceLayerList.size());
767 767
768 renderSurfaceLayerList.clear(); 768 renderSurfaceLayerList.clear();
769 renderSurface1->setForceRenderSurface(false); 769 renderSurface1->setForceRenderSurface(false);
770 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 770 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
771 EXPECT_TRUE(parent->renderSurface()); 771 EXPECT_TRUE(parent->renderSurface());
772 EXPECT_FALSE(renderSurface1->renderSurface()); 772 EXPECT_FALSE(renderSurface1->renderSurface());
773 EXPECT_EQ(1U, renderSurfaceLayerList.size()); 773 EXPECT_EQ(1U, renderSurfaceLayerList.size());
774 } 774 }
775 775
776 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithD irectContainer) 776 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithD irectContainer)
777 { 777 {
778 // This test checks for correct scroll compensation when the fixed-position container 778 // This test checks for correct scroll compensation when the fixed-position container
779 // is the direct parent of the fixed-position layer. 779 // is the direct parent of the fixed-position layer.
780 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests(); 780 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests();
781 LayerImpl* child = root->children()[0]; 781 LayerImpl* child = root->children()[0];
782 LayerImpl* grandChild = child->children()[0]; 782 LayerImpl* grandChild = child->children()[0];
783 783
784 child->setIsContainerForFixedPositionLayers(true); 784 child->setIsContainerForFixedPositionLayers(true);
785 grandChild->setFixedToContainerLayer(true); 785 grandChild->setFixedToContainerLayer(true);
786 786
787 // Case 1: scrollDelta of 0, 0 787 // Case 1: scrollDelta of 0, 0
788 child->setScrollDelta(gfx::Vector2d(0, 0)); 788 child->setScrollDelta(gfx::Vector2d(0, 0));
789 executeCalculateDrawTransformsAndVisibility(root.get()); 789 executeCalculateDrawProperties(root.get());
790 790
791 gfx::Transform expectedChildTransform; 791 gfx::Transform expectedChildTransform;
792 gfx::Transform expectedGrandChildTransform = expectedChildTransform; 792 gfx::Transform expectedGrandChildTransform = expectedChildTransform;
793 793
794 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 794 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
795 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 795 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
796 796
797 // Case 2: scrollDelta of 10, 10 797 // Case 2: scrollDelta of 10, 10
798 child->setScrollDelta(gfx::Vector2d(10, 10)); 798 child->setScrollDelta(gfx::Vector2d(10, 10));
799 executeCalculateDrawTransformsAndVisibility(root.get()); 799 executeCalculateDrawProperties(root.get());
800 800
801 // Here the child is affected by scrollDelta, but the fixed position grandCh ild should not be affected. 801 // Here the child is affected by scrollDelta, but the fixed position grandCh ild should not be affected.
802 expectedChildTransform.MakeIdentity(); 802 expectedChildTransform.MakeIdentity();
803 expectedChildTransform.Translate(-10, -10); 803 expectedChildTransform.Translate(-10, -10);
804 804
805 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 805 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
806 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 806 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
807 } 807 }
808 808
809 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithT ransformedDirectContainer) 809 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithT ransformedDirectContainer)
(...skipping 13 matching lines...) Expand all
823 // This scale will cause child and grandChild to be effectively 200 x 800 wi th respect to the renderTarget. 823 // This scale will cause child and grandChild to be effectively 200 x 800 wi th respect to the renderTarget.
824 gfx::Transform nonUniformScale; 824 gfx::Transform nonUniformScale;
825 nonUniformScale.Scale(2, 8); 825 nonUniformScale.Scale(2, 8);
826 child->setTransform(nonUniformScale); 826 child->setTransform(nonUniformScale);
827 827
828 child->setIsContainerForFixedPositionLayers(true); 828 child->setIsContainerForFixedPositionLayers(true);
829 grandChild->setFixedToContainerLayer(true); 829 grandChild->setFixedToContainerLayer(true);
830 830
831 // Case 1: scrollDelta of 0, 0 831 // Case 1: scrollDelta of 0, 0
832 child->setScrollDelta(gfx::Vector2d(0, 0)); 832 child->setScrollDelta(gfx::Vector2d(0, 0));
833 executeCalculateDrawTransformsAndVisibility(root.get()); 833 executeCalculateDrawProperties(root.get());
834 834
835 gfx::Transform expectedChildTransform; 835 gfx::Transform expectedChildTransform;
836 expectedChildTransform.PreconcatTransform(nonUniformScale); 836 expectedChildTransform.PreconcatTransform(nonUniformScale);
837 837
838 gfx::Transform expectedGrandChildTransform = expectedChildTransform; 838 gfx::Transform expectedGrandChildTransform = expectedChildTransform;
839 839
840 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 840 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
841 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 841 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
842 842
843 // Case 2: scrollDelta of 10, 20 843 // Case 2: scrollDelta of 10, 20
844 child->setScrollDelta(gfx::Vector2d(10, 20)); 844 child->setScrollDelta(gfx::Vector2d(10, 20));
845 executeCalculateDrawTransformsAndVisibility(root.get()); 845 executeCalculateDrawProperties(root.get());
846 846
847 // The child should be affected by scrollDelta, but the fixed position grand Child should not be affected. 847 // The child should be affected by scrollDelta, but the fixed position grand Child should not be affected.
848 expectedChildTransform.MakeIdentity(); 848 expectedChildTransform.MakeIdentity();
849 expectedChildTransform.Translate(-10, -20); // scrollDelta 849 expectedChildTransform.Translate(-10, -20); // scrollDelta
850 expectedChildTransform.PreconcatTransform(nonUniformScale); 850 expectedChildTransform.PreconcatTransform(nonUniformScale);
851 851
852 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 852 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
853 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 853 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
854 } 854 }
855 855
856 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithD istantContainer) 856 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerWithD istantContainer)
857 { 857 {
858 // This test checks for correct scroll compensation when the fixed-position container 858 // This test checks for correct scroll compensation when the fixed-position container
859 // is NOT the direct parent of the fixed-position layer. 859 // is NOT the direct parent of the fixed-position layer.
860 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests(); 860 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests();
861 LayerImpl* child = root->children()[0]; 861 LayerImpl* child = root->children()[0];
862 LayerImpl* grandChild = child->children()[0]; 862 LayerImpl* grandChild = child->children()[0];
863 LayerImpl* greatGrandChild = grandChild->children()[0]; 863 LayerImpl* greatGrandChild = grandChild->children()[0];
864 864
865 child->setIsContainerForFixedPositionLayers(true); 865 child->setIsContainerForFixedPositionLayers(true);
866 grandChild->setPosition(gfx::PointF(8, 6)); 866 grandChild->setPosition(gfx::PointF(8, 6));
867 greatGrandChild->setFixedToContainerLayer(true); 867 greatGrandChild->setFixedToContainerLayer(true);
868 868
869 // Case 1: scrollDelta of 0, 0 869 // Case 1: scrollDelta of 0, 0
870 child->setScrollDelta(gfx::Vector2d(0, 0)); 870 child->setScrollDelta(gfx::Vector2d(0, 0));
871 executeCalculateDrawTransformsAndVisibility(root.get()); 871 executeCalculateDrawProperties(root.get());
872 872
873 gfx::Transform expectedChildTransform; 873 gfx::Transform expectedChildTransform;
874 gfx::Transform expectedGrandChildTransform; 874 gfx::Transform expectedGrandChildTransform;
875 expectedGrandChildTransform.Translate(8, 6); 875 expectedGrandChildTransform.Translate(8, 6);
876 876
877 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m; 877 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m;
878 878
879 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 879 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
880 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 880 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
881 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 881 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
882 882
883 // Case 2: scrollDelta of 10, 10 883 // Case 2: scrollDelta of 10, 10
884 child->setScrollDelta(gfx::Vector2d(10, 10)); 884 child->setScrollDelta(gfx::Vector2d(10, 10));
885 executeCalculateDrawTransformsAndVisibility(root.get()); 885 executeCalculateDrawProperties(root.get());
886 886
887 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected. 887 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected.
888 expectedChildTransform.MakeIdentity(); 888 expectedChildTransform.MakeIdentity();
889 expectedChildTransform.Translate(-10, -10); 889 expectedChildTransform.Translate(-10, -10);
890 expectedGrandChildTransform.MakeIdentity(); 890 expectedGrandChildTransform.MakeIdentity();
891 expectedGrandChildTransform.Translate(-2, -4); 891 expectedGrandChildTransform.Translate(-2, -4);
892 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 892 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
893 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 893 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
894 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 894 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
895 } 895 }
(...skipping 12 matching lines...) Expand all
908 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90); 908 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90);
909 909
910 child->setIsContainerForFixedPositionLayers(true); 910 child->setIsContainerForFixedPositionLayers(true);
911 child->setTransform(rotationAboutZ); 911 child->setTransform(rotationAboutZ);
912 grandChild->setPosition(gfx::PointF(8, 6)); 912 grandChild->setPosition(gfx::PointF(8, 6));
913 grandChild->setTransform(rotationAboutZ); 913 grandChild->setTransform(rotationAboutZ);
914 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget. 914 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget.
915 915
916 // Case 1: scrollDelta of 0, 0 916 // Case 1: scrollDelta of 0, 0
917 child->setScrollDelta(gfx::Vector2d(0, 0)); 917 child->setScrollDelta(gfx::Vector2d(0, 0));
918 executeCalculateDrawTransformsAndVisibility(root.get()); 918 executeCalculateDrawProperties(root.get());
919 919
920 gfx::Transform expectedChildTransform; 920 gfx::Transform expectedChildTransform;
921 expectedChildTransform.PreconcatTransform(rotationAboutZ); 921 expectedChildTransform.PreconcatTransform(rotationAboutZ);
922 922
923 gfx::Transform expectedGrandChildTransform; 923 gfx::Transform expectedGrandChildTransform;
924 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited 924 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited
925 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform. 925 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform.
926 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // grandChil d's local transform 926 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // grandChil d's local transform
927 927
928 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m; 928 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m;
929 929
930 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 930 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
931 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 931 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
932 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 932 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
933 933
934 // Case 2: scrollDelta of 10, 20 934 // Case 2: scrollDelta of 10, 20
935 child->setScrollDelta(gfx::Vector2d(10, 20)); 935 child->setScrollDelta(gfx::Vector2d(10, 20));
936 executeCalculateDrawTransformsAndVisibility(root.get()); 936 executeCalculateDrawProperties(root.get());
937 937
938 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected. 938 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected.
939 expectedChildTransform.MakeIdentity(); 939 expectedChildTransform.MakeIdentity();
940 expectedChildTransform.Translate(-10, -20); // scrollDelta 940 expectedChildTransform.Translate(-10, -20); // scrollDelta
941 expectedChildTransform.PreconcatTransform(rotationAboutZ); 941 expectedChildTransform.PreconcatTransform(rotationAboutZ);
942 942
943 expectedGrandChildTransform.MakeIdentity(); 943 expectedGrandChildTransform.MakeIdentity();
944 expectedGrandChildTransform.Translate(-10, -20); // child's scrollDelta is i nherited 944 expectedGrandChildTransform.Translate(-10, -20); // child's scrollDelta is i nherited
945 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited 945 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited
946 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform. 946 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform.
(...skipping 21 matching lines...) Expand all
968 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90); 968 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90);
969 969
970 child->setIsContainerForFixedPositionLayers(true); 970 child->setIsContainerForFixedPositionLayers(true);
971 child->setTransform(rotationAboutZ); 971 child->setTransform(rotationAboutZ);
972 grandChild->setPosition(gfx::PointF(8, 6)); 972 grandChild->setPosition(gfx::PointF(8, 6));
973 grandChild->setTransform(rotationAboutZ); 973 grandChild->setTransform(rotationAboutZ);
974 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget. 974 greatGrandChild->setFixedToContainerLayer(true); // greatGrandChild is posit ioned upside-down with respect to the renderTarget.
975 975
976 // Case 1: scrollDelta of 0, 0 976 // Case 1: scrollDelta of 0, 0
977 child->setScrollDelta(gfx::Vector2d(0, 0)); 977 child->setScrollDelta(gfx::Vector2d(0, 0));
978 executeCalculateDrawTransformsAndVisibility(root.get()); 978 executeCalculateDrawProperties(root.get());
979 979
980 gfx::Transform expectedChildTransform; 980 gfx::Transform expectedChildTransform;
981 expectedChildTransform.PreconcatTransform(rotationAboutZ); 981 expectedChildTransform.PreconcatTransform(rotationAboutZ);
982 982
983 gfx::Transform expectedGrandChildTransform; 983 gfx::Transform expectedGrandChildTransform;
984 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited 984 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited
985 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform. 985 expectedGrandChildTransform.Translate(8, 6); // translation because of posit ion occurs before layer's local transform.
986 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // grandChil d's local transform 986 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // grandChil d's local transform
987 987
988 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m; 988 gfx::Transform expectedGreatGrandChildTransform = expectedGrandChildTransfor m;
989 989
990 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 990 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
991 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 991 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
992 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 992 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
993 993
994 // Case 2: scrollDelta of 10, 20 994 // Case 2: scrollDelta of 10, 20
995 child->setScrollDelta(gfx::Vector2d(10, 0)); 995 child->setScrollDelta(gfx::Vector2d(10, 0));
996 grandChild->setScrollDelta(gfx::Vector2d(5, 0)); 996 grandChild->setScrollDelta(gfx::Vector2d(5, 0));
997 executeCalculateDrawTransformsAndVisibility(root.get()); 997 executeCalculateDrawProperties(root.get());
998 998
999 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected. 999 // Here the child and grandChild are affected by scrollDelta, but the fixed position greatGrandChild should not be affected.
1000 expectedChildTransform.MakeIdentity(); 1000 expectedChildTransform.MakeIdentity();
1001 expectedChildTransform.Translate(-10, 0); // scrollDelta 1001 expectedChildTransform.Translate(-10, 0); // scrollDelta
1002 expectedChildTransform.PreconcatTransform(rotationAboutZ); 1002 expectedChildTransform.PreconcatTransform(rotationAboutZ);
1003 1003
1004 expectedGrandChildTransform.MakeIdentity(); 1004 expectedGrandChildTransform.MakeIdentity();
1005 expectedGrandChildTransform.Translate(-10, 0); // child's scrollDelta is inh erited 1005 expectedGrandChildTransform.Translate(-10, 0); // child's scrollDelta is inh erited
1006 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited 1006 expectedGrandChildTransform.PreconcatTransform(rotationAboutZ); // child's l ocal transform is inherited
1007 expectedGrandChildTransform.Translate(-5, 0); // grandChild's scrollDelta 1007 expectedGrandChildTransform.Translate(-5, 0); // grandChild's scrollDelta
(...skipping 21 matching lines...) Expand all
1029 grandChild->setForceRenderSurface(true); 1029 grandChild->setForceRenderSurface(true);
1030 greatGrandChild->setFixedToContainerLayer(true); 1030 greatGrandChild->setFixedToContainerLayer(true);
1031 greatGrandChild->setDrawsContent(true); 1031 greatGrandChild->setDrawsContent(true);
1032 1032
1033 gfx::Transform rotationAboutZ; 1033 gfx::Transform rotationAboutZ;
1034 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90); 1034 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90);
1035 grandChild->setTransform(rotationAboutZ); 1035 grandChild->setTransform(rotationAboutZ);
1036 1036
1037 // Case 1: scrollDelta of 0, 0 1037 // Case 1: scrollDelta of 0, 0
1038 child->setScrollDelta(gfx::Vector2d(0, 0)); 1038 child->setScrollDelta(gfx::Vector2d(0, 0));
1039 executeCalculateDrawTransformsAndVisibility(root.get()); 1039 executeCalculateDrawProperties(root.get());
1040 1040
1041 gfx::Transform expectedChildTransform; 1041 gfx::Transform expectedChildTransform;
1042 gfx::Transform expectedSurfaceDrawTransform; 1042 gfx::Transform expectedSurfaceDrawTransform;
1043 expectedSurfaceDrawTransform.Translate(8, 6); 1043 expectedSurfaceDrawTransform.Translate(8, 6);
1044 expectedSurfaceDrawTransform.PreconcatTransform(rotationAboutZ); 1044 expectedSurfaceDrawTransform.PreconcatTransform(rotationAboutZ);
1045 gfx::Transform expectedGrandChildTransform; 1045 gfx::Transform expectedGrandChildTransform;
1046 gfx::Transform expectedGreatGrandChildTransform; 1046 gfx::Transform expectedGreatGrandChildTransform;
1047 ASSERT_TRUE(grandChild->renderSurface()); 1047 ASSERT_TRUE(grandChild->renderSurface());
1048 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 1048 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
1049 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedSurfaceDrawTransform, grandChild->re nderSurface()->drawTransform()); 1049 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedSurfaceDrawTransform, grandChild->re nderSurface()->drawTransform());
1050 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 1050 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
1051 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 1051 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
1052 1052
1053 // Case 2: scrollDelta of 10, 30 1053 // Case 2: scrollDelta of 10, 30
1054 child->setScrollDelta(gfx::Vector2d(10, 30)); 1054 child->setScrollDelta(gfx::Vector2d(10, 30));
1055 executeCalculateDrawTransformsAndVisibility(root.get()); 1055 executeCalculateDrawProperties(root.get());
1056 1056
1057 // Here the grandChild remains unchanged, because it scrolls along with the 1057 // Here the grandChild remains unchanged, because it scrolls along with the
1058 // renderSurface, and the translation is actually in the renderSurface. But, the fixed 1058 // renderSurface, and the translation is actually in the renderSurface. But, the fixed
1059 // position greatGrandChild is more awkward: its actually being drawn with r espect to 1059 // position greatGrandChild is more awkward: its actually being drawn with r espect to
1060 // the renderSurface, but it needs to remain fixed with resepct to a contain er beyond 1060 // the renderSurface, but it needs to remain fixed with resepct to a contain er beyond
1061 // that surface. So, the net result is that, unlike previous tests where the fixed 1061 // that surface. So, the net result is that, unlike previous tests where the fixed
1062 // position layer's transform remains unchanged, here the fixed position lay er's 1062 // position layer's transform remains unchanged, here the fixed position lay er's
1063 // transform explicitly contains the translation that cancels out the scroll . 1063 // transform explicitly contains the translation that cancels out the scroll .
1064 expectedChildTransform.MakeIdentity(); 1064 expectedChildTransform.MakeIdentity();
1065 expectedChildTransform.Translate(-10, -30); // scrollDelta 1065 expectedChildTransform.Translate(-10, -30); // scrollDelta
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 // clip away layers that we want to test. 1119 // clip away layers that we want to test.
1120 gfx::Transform rotationAboutZ; 1120 gfx::Transform rotationAboutZ;
1121 rotationAboutZ.Translate(50, 50); 1121 rotationAboutZ.Translate(50, 50);
1122 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90); 1122 MathUtil::rotateEulerAngles(&rotationAboutZ, 0, 0, 90);
1123 rotationAboutZ.Translate(-50, -50); 1123 rotationAboutZ.Translate(-50, -50);
1124 grandChild->setTransform(rotationAboutZ); 1124 grandChild->setTransform(rotationAboutZ);
1125 greatGrandChild->setTransform(rotationAboutZ); 1125 greatGrandChild->setTransform(rotationAboutZ);
1126 1126
1127 // Case 1: scrollDelta of 0, 0 1127 // Case 1: scrollDelta of 0, 0
1128 child->setScrollDelta(gfx::Vector2d(0, 0)); 1128 child->setScrollDelta(gfx::Vector2d(0, 0));
1129 executeCalculateDrawTransformsAndVisibility(root.get()); 1129 executeCalculateDrawProperties(root.get());
1130 1130
1131 gfx::Transform expectedChildTransform; 1131 gfx::Transform expectedChildTransform;
1132 1132
1133 gfx::Transform expectedGrandChildSurfaceDrawTransform; 1133 gfx::Transform expectedGrandChildSurfaceDrawTransform;
1134 expectedGrandChildSurfaceDrawTransform.Translate(8, 6); 1134 expectedGrandChildSurfaceDrawTransform.Translate(8, 6);
1135 expectedGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAboutZ); 1135 expectedGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAboutZ);
1136 1136
1137 gfx::Transform expectedGrandChildTransform; 1137 gfx::Transform expectedGrandChildTransform;
1138 1138
1139 gfx::Transform expectedGreatGrandChildSurfaceDrawTransform; 1139 gfx::Transform expectedGreatGrandChildSurfaceDrawTransform;
1140 expectedGreatGrandChildSurfaceDrawTransform.Translate(40, 60); 1140 expectedGreatGrandChildSurfaceDrawTransform.Translate(40, 60);
1141 expectedGreatGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAbout Z); 1141 expectedGreatGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAbout Z);
1142 1142
1143 gfx::Transform expectedGreatGrandChildTransform; 1143 gfx::Transform expectedGreatGrandChildTransform;
1144 1144
1145 gfx::Transform expectedFixedPositionChildTransform; 1145 gfx::Transform expectedFixedPositionChildTransform;
1146 1146
1147 ASSERT_TRUE(grandChild->renderSurface()); 1147 ASSERT_TRUE(grandChild->renderSurface());
1148 ASSERT_TRUE(greatGrandChild->renderSurface()); 1148 ASSERT_TRUE(greatGrandChild->renderSurface());
1149 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 1149 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
1150 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildSurfaceDrawTransform, gran dChild->renderSurface()->drawTransform()); 1150 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildSurfaceDrawTransform, gran dChild->renderSurface()->drawTransform());
1151 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 1151 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
1152 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildSurfaceDrawTransform, greatGrandChild->renderSurface()->drawTransform()); 1152 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildSurfaceDrawTransform, greatGrandChild->renderSurface()->drawTransform());
1153 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform()); 1153 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGreatGrandChildTransform, greatGrand Child->drawTransform());
1154 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedFixedPositionChildTransform, fixedPo sitionChild->drawTransform()); 1154 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedFixedPositionChildTransform, fixedPo sitionChild->drawTransform());
1155 1155
1156 // Case 2: scrollDelta of 10, 30 1156 // Case 2: scrollDelta of 10, 30
1157 child->setScrollDelta(gfx::Vector2d(10, 30)); 1157 child->setScrollDelta(gfx::Vector2d(10, 30));
1158 executeCalculateDrawTransformsAndVisibility(root.get()); 1158 executeCalculateDrawProperties(root.get());
1159 1159
1160 expectedChildTransform.MakeIdentity(); 1160 expectedChildTransform.MakeIdentity();
1161 expectedChildTransform.Translate(-10, -30); // scrollDelta 1161 expectedChildTransform.Translate(-10, -30); // scrollDelta
1162 1162
1163 expectedGrandChildSurfaceDrawTransform.MakeIdentity(); 1163 expectedGrandChildSurfaceDrawTransform.MakeIdentity();
1164 expectedGrandChildSurfaceDrawTransform.Translate(-10, -30); // scrollDelta 1164 expectedGrandChildSurfaceDrawTransform.Translate(-10, -30); // scrollDelta
1165 expectedGrandChildSurfaceDrawTransform.Translate(8, 6); 1165 expectedGrandChildSurfaceDrawTransform.Translate(8, 6);
1166 expectedGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAboutZ); 1166 expectedGrandChildSurfaceDrawTransform.PreconcatTransform(rotationAboutZ);
1167 1167
1168 // grandChild, greatGrandChild, and greatGrandChild's surface are not expect ed to 1168 // grandChild, greatGrandChild, and greatGrandChild's surface are not expect ed to
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1203 LayerImpl* child = root->children()[0]; 1203 LayerImpl* child = root->children()[0];
1204 LayerImpl* grandChild = child->children()[0]; 1204 LayerImpl* grandChild = child->children()[0];
1205 1205
1206 child->setIsContainerForFixedPositionLayers(true); 1206 child->setIsContainerForFixedPositionLayers(true);
1207 child->setForceRenderSurface(true); 1207 child->setForceRenderSurface(true);
1208 grandChild->setFixedToContainerLayer(true); 1208 grandChild->setFixedToContainerLayer(true);
1209 grandChild->setDrawsContent(true); 1209 grandChild->setDrawsContent(true);
1210 1210
1211 // Case 1: scrollDelta of 0, 0 1211 // Case 1: scrollDelta of 0, 0
1212 child->setScrollDelta(gfx::Vector2d(0, 0)); 1212 child->setScrollDelta(gfx::Vector2d(0, 0));
1213 executeCalculateDrawTransformsAndVisibility(root.get()); 1213 executeCalculateDrawProperties(root.get());
1214 1214
1215 gfx::Transform expectedSurfaceDrawTransform; 1215 gfx::Transform expectedSurfaceDrawTransform;
1216 expectedSurfaceDrawTransform.Translate(0, 0); 1216 expectedSurfaceDrawTransform.Translate(0, 0);
1217 gfx::Transform expectedChildTransform; 1217 gfx::Transform expectedChildTransform;
1218 gfx::Transform expectedGrandChildTransform; 1218 gfx::Transform expectedGrandChildTransform;
1219 ASSERT_TRUE(child->renderSurface()); 1219 ASSERT_TRUE(child->renderSurface());
1220 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedSurfaceDrawTransform, child->renderS urface()->drawTransform()); 1220 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedSurfaceDrawTransform, child->renderS urface()->drawTransform());
1221 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 1221 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
1222 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 1222 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
1223 1223
1224 // Case 2: scrollDelta of 10, 10 1224 // Case 2: scrollDelta of 10, 10
1225 child->setScrollDelta(gfx::Vector2d(10, 10)); 1225 child->setScrollDelta(gfx::Vector2d(10, 10));
1226 executeCalculateDrawTransformsAndVisibility(root.get()); 1226 executeCalculateDrawProperties(root.get());
1227 1227
1228 // The surface is translated by scrollDelta, the child transform doesn't cha nge 1228 // The surface is translated by scrollDelta, the child transform doesn't cha nge
1229 // because it scrolls along with the surface, but the fixed position grandCh ild 1229 // because it scrolls along with the surface, but the fixed position grandCh ild
1230 // needs to compensate for the scroll translation. 1230 // needs to compensate for the scroll translation.
1231 expectedSurfaceDrawTransform.MakeIdentity(); 1231 expectedSurfaceDrawTransform.MakeIdentity();
1232 expectedSurfaceDrawTransform.Translate(-10, -10); 1232 expectedSurfaceDrawTransform.Translate(-10, -10);
1233 expectedGrandChildTransform.MakeIdentity(); 1233 expectedGrandChildTransform.MakeIdentity();
1234 expectedGrandChildTransform.Translate(10, 10); 1234 expectedGrandChildTransform.Translate(10, 10);
1235 1235
1236 ASSERT_TRUE(child->renderSurface()); 1236 ASSERT_TRUE(child->renderSurface());
(...skipping 12 matching lines...) Expand all
1249 LayerImpl* grandChild = child->children()[0]; 1249 LayerImpl* grandChild = child->children()[0];
1250 1250
1251 child->setIsContainerForFixedPositionLayers(true); 1251 child->setIsContainerForFixedPositionLayers(true);
1252 grandChild->setFixedToContainerLayer(true); 1252 grandChild->setFixedToContainerLayer(true);
1253 1253
1254 // This should not confuse the grandChild. If correct, the grandChild would still be considered fixed to its container (i.e. "child"). 1254 // This should not confuse the grandChild. If correct, the grandChild would still be considered fixed to its container (i.e. "child").
1255 grandChild->setIsContainerForFixedPositionLayers(true); 1255 grandChild->setIsContainerForFixedPositionLayers(true);
1256 1256
1257 // Case 1: scrollDelta of 0, 0 1257 // Case 1: scrollDelta of 0, 0
1258 child->setScrollDelta(gfx::Vector2d(0, 0)); 1258 child->setScrollDelta(gfx::Vector2d(0, 0));
1259 executeCalculateDrawTransformsAndVisibility(root.get()); 1259 executeCalculateDrawProperties(root.get());
1260 1260
1261 gfx::Transform expectedChildTransform; 1261 gfx::Transform expectedChildTransform;
1262 gfx::Transform expectedGrandChildTransform; 1262 gfx::Transform expectedGrandChildTransform;
1263 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 1263 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
1264 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 1264 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
1265 1265
1266 // Case 2: scrollDelta of 10, 10 1266 // Case 2: scrollDelta of 10, 10
1267 child->setScrollDelta(gfx::Vector2d(10, 10)); 1267 child->setScrollDelta(gfx::Vector2d(10, 10));
1268 executeCalculateDrawTransformsAndVisibility(root.get()); 1268 executeCalculateDrawProperties(root.get());
1269 1269
1270 // Here the child is affected by scrollDelta, but the fixed position grandCh ild should not be affected. 1270 // Here the child is affected by scrollDelta, but the fixed position grandCh ild should not be affected.
1271 expectedChildTransform.MakeIdentity(); 1271 expectedChildTransform.MakeIdentity();
1272 expectedChildTransform.Translate(-10, -10); 1272 expectedChildTransform.Translate(-10, -10);
1273 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ()); 1273 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedChildTransform, child->drawTransform ());
1274 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform()); 1274 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedGrandChildTransform, grandChild->dra wTransform());
1275 } 1275 }
1276 1276
1277 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerThatH asNoContainer) 1277 TEST(LayerTreeHostCommonTest, verifyScrollCompensationForFixedPositionLayerThatH asNoContainer)
1278 { 1278 {
1279 // This test checks scroll compensation when a fixed-position layer does not find any 1279 // This test checks scroll compensation when a fixed-position layer does not find any
1280 // ancestor that is a "containerForFixedPositionLayers". In this situation, the layer should 1280 // ancestor that is a "containerForFixedPositionLayers". In this situation, the layer should
1281 // be fixed to the viewport -- not the rootLayer, which may have transforms of its own. 1281 // be fixed to the viewport -- not the rootLayer, which may have transforms of its own.
1282 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests(); 1282 scoped_ptr<LayerImpl> root = createTreeForFixedPositionTests();
1283 LayerImpl* child = root->children()[0]; 1283 LayerImpl* child = root->children()[0];
1284 LayerImpl* grandChild = child->children()[0]; 1284 LayerImpl* grandChild = child->children()[0];
1285 1285
1286 gfx::Transform rotationByZ; 1286 gfx::Transform rotationByZ;
1287 MathUtil::rotateEulerAngles(&rotationByZ, 0, 0, 90); 1287 MathUtil::rotateEulerAngles(&rotationByZ, 0, 0, 90);
1288 1288
1289 root->setTransform(rotationByZ); 1289 root->setTransform(rotationByZ);
1290 grandChild->setFixedToContainerLayer(true); 1290 grandChild->setFixedToContainerLayer(true);
1291 1291
1292 // Case 1: root scrollDelta of 0, 0 1292 // Case 1: root scrollDelta of 0, 0
1293 root->setScrollDelta(gfx::Vector2d(0, 0)); 1293 root->setScrollDelta(gfx::Vector2d(0, 0));
1294 executeCalculateDrawTransformsAndVisibility(root.get()); 1294 executeCalculateDrawProperties(root.get());
1295 1295
1296 gfx::Transform identityMatrix; 1296 gfx::Transform identityMatrix;
1297 1297
1298 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform()); 1298 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, child->drawTransform());
1299 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ; 1299 EXPECT_TRANSFORMATION_MATRIX_EQ(identityMatrix, grandChild->drawTransform()) ;
1300 1300
1301 // Case 2: root scrollDelta of 10, 10 1301 // Case 2: root scrollDelta of 10, 10
1302 root->setScrollDelta(gfx::Vector2d(10, 20)); 1302 root->setScrollDelta(gfx::Vector2d(10, 20));
1303 executeCalculateDrawTransformsAndVisibility(root.get()); 1303 executeCalculateDrawProperties(root.get());
1304 1304
1305 // The child is affected by scrollDelta, but it is already implcitly account ed for by 1305 // The child is affected by scrollDelta, but it is already implcitly account ed for by
1306 // the child's target surface (i.e. the root renderSurface). The grandChild is not 1306 // the child's target surface (i.e. the root renderSurface). The grandChild is not
1307 // affected by the scrollDelta, so its drawTransform needs to explicitly 1307 // affected by the scrollDelta, so its drawTransform needs to explicitly
1308 // inverse-compensate for the scroll that's embedded in the target surface. 1308 // inverse-compensate for the scroll that's embedded in the target surface.
1309 gfx::Transform expectedGrandChildTransform; 1309 gfx::Transform expectedGrandChildTransform;
1310 expectedGrandChildTransform.PreconcatTransform(MathUtil::inverse(rotationByZ )); 1310 expectedGrandChildTransform.PreconcatTransform(MathUtil::inverse(rotationByZ ));
1311 expectedGrandChildTransform.Translate(10, 20); // explicit canceling out the scrollDelta that gets embedded in the fixed position layer's surface. 1311 expectedGrandChildTransform.Translate(10, 20); // explicit canceling out the scrollDelta that gets embedded in the fixed position layer's surface.
1312 expectedGrandChildTransform.PreconcatTransform(rotationByZ); 1312 expectedGrandChildTransform.PreconcatTransform(rotationByZ);
1313 1313
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1355 setLayerPropertiesForTesting(leafNode2.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(20, 20), false); 1355 setLayerPropertiesForTesting(leafNode2.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(20, 20), false);
1356 1356
1357 child->setMasksToBounds(true); 1357 child->setMasksToBounds(true);
1358 child->setOpacity(0.4f); 1358 child->setOpacity(0.4f);
1359 child->setForceRenderSurface(true); 1359 child->setForceRenderSurface(true);
1360 grandChild->setOpacity(0.5); 1360 grandChild->setOpacity(0.5);
1361 greatGrandChild->setOpacity(0.4f); 1361 greatGrandChild->setOpacity(0.4f);
1362 1362
1363 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 1363 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
1364 int dummyMaxTextureSize = 512; 1364 int dummyMaxTextureSize = 512;
1365 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 1365 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
1366 1366
1367 ASSERT_EQ(2U, renderSurfaceLayerList.size()); 1367 ASSERT_EQ(2U, renderSurfaceLayerList.size());
1368 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 1368 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
1369 EXPECT_EQ(child->id(), renderSurfaceLayerList[1]->id()); 1369 EXPECT_EQ(child->id(), renderSurfaceLayerList[1]->id());
1370 } 1370 }
1371 1371
1372 TEST(LayerTreeHostCommonTest, verifyClipRectCullsSurfaceWithoutVisibleContent) 1372 TEST(LayerTreeHostCommonTest, verifyClipRectCullsSurfaceWithoutVisibleContent)
1373 { 1373 {
1374 // When a renderSurface has a clipRect, it is used to clip the contentRect 1374 // When a renderSurface has a clipRect, it is used to clip the contentRect
1375 // of the surface. When the renderSurface is animating its transforms, then 1375 // of the surface. When the renderSurface is animating its transforms, then
(...skipping 26 matching lines...) Expand all
1402 setLayerPropertiesForTesting(leafNode.get(), identityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false); 1402 setLayerPropertiesForTesting(leafNode.get(), identityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(10, 10), false);
1403 1403
1404 parent->setMasksToBounds(true); 1404 parent->setMasksToBounds(true);
1405 child->setOpacity(0.4f); 1405 child->setOpacity(0.4f);
1406 child->setForceRenderSurface(true); 1406 child->setForceRenderSurface(true);
1407 grandChild->setOpacity(0.4f); 1407 grandChild->setOpacity(0.4f);
1408 grandChild->setForceRenderSurface(true); 1408 grandChild->setForceRenderSurface(true);
1409 1409
1410 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 1410 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
1411 int dummyMaxTextureSize = 512; 1411 int dummyMaxTextureSize = 512;
1412 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 1412 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
1413 1413
1414 // Without an animation, we should cull child and grandChild from the render SurfaceLayerList. 1414 // Without an animation, we should cull child and grandChild from the render SurfaceLayerList.
1415 ASSERT_EQ(1U, renderSurfaceLayerList.size()); 1415 ASSERT_EQ(1U, renderSurfaceLayerList.size());
1416 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 1416 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
1417 1417
1418 // Now put an animating transform on child. 1418 // Now put an animating transform on child.
1419 addAnimatedTransformToController(*child->layerAnimationController(), 10, 30, 0); 1419 addAnimatedTransformToController(*child->layerAnimationController(), 10, 30, 0);
1420 1420
1421 parent->clearRenderSurface(); 1421 parent->clearRenderSurface();
1422 child->clearRenderSurface(); 1422 child->clearRenderSurface();
1423 grandChild->clearRenderSurface(); 1423 grandChild->clearRenderSurface();
1424 renderSurfaceLayerList.clear(); 1424 renderSurfaceLayerList.clear();
1425 1425
1426 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 1426 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
1427 1427
1428 // With an animating transform, we should keep child and grandChild in the r enderSurfaceLayerList. 1428 // With an animating transform, we should keep child and grandChild in the r enderSurfaceLayerList.
1429 ASSERT_EQ(3U, renderSurfaceLayerList.size()); 1429 ASSERT_EQ(3U, renderSurfaceLayerList.size());
1430 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 1430 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
1431 EXPECT_EQ(child->id(), renderSurfaceLayerList[1]->id()); 1431 EXPECT_EQ(child->id(), renderSurfaceLayerList[1]->id());
1432 EXPECT_EQ(grandChild->id(), renderSurfaceLayerList[2]->id()); 1432 EXPECT_EQ(grandChild->id(), renderSurfaceLayerList[2]->id());
1433 } 1433 }
1434 1434
1435 TEST(LayerTreeHostCommonTest, verifyIsClippedIsSetCorrectly) 1435 TEST(LayerTreeHostCommonTest, verifyIsClippedIsSetCorrectly)
1436 { 1436 {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1468 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1468 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1469 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1469 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1470 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1470 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1471 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1471 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1472 setLayerPropertiesForTesting(leafNode1.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1472 setLayerPropertiesForTesting(leafNode1.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1473 setLayerPropertiesForTesting(leafNode2.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 1473 setLayerPropertiesForTesting(leafNode2.get(), identityMatrix, identityMatrix , gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
1474 1474
1475 // Case 1: nothing is clipped except the root renderSurface. 1475 // Case 1: nothing is clipped except the root renderSurface.
1476 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 1476 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
1477 int dummyMaxTextureSize = 512; 1477 int dummyMaxTextureSize = 512;
1478 LayerTreeHostCommon::calculateDrawTransforms(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList); 1478 LayerTreeHostCommon::calculateDrawProperties(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList);
1479 1479
1480 ASSERT_TRUE(root->renderSurface()); 1480 ASSERT_TRUE(root->renderSurface());
1481 ASSERT_TRUE(child2->renderSurface()); 1481 ASSERT_TRUE(child2->renderSurface());
1482 1482
1483 EXPECT_FALSE(root->isClipped()); 1483 EXPECT_FALSE(root->isClipped());
1484 EXPECT_TRUE(root->renderSurface()->isClipped()); 1484 EXPECT_TRUE(root->renderSurface()->isClipped());
1485 EXPECT_FALSE(parent->isClipped()); 1485 EXPECT_FALSE(parent->isClipped());
1486 EXPECT_FALSE(child1->isClipped()); 1486 EXPECT_FALSE(child1->isClipped());
1487 EXPECT_FALSE(child2->isClipped()); 1487 EXPECT_FALSE(child2->isClipped());
1488 EXPECT_FALSE(child2->renderSurface()->isClipped()); 1488 EXPECT_FALSE(child2->renderSurface()->isClipped());
1489 EXPECT_FALSE(grandChild->isClipped()); 1489 EXPECT_FALSE(grandChild->isClipped());
1490 EXPECT_FALSE(leafNode1->isClipped()); 1490 EXPECT_FALSE(leafNode1->isClipped());
1491 EXPECT_FALSE(leafNode2->isClipped()); 1491 EXPECT_FALSE(leafNode2->isClipped());
1492 1492
1493 // Case 2: parent masksToBounds, so the parent, child1, and child2's 1493 // Case 2: parent masksToBounds, so the parent, child1, and child2's
1494 // surface are clipped. But layers that contribute to child2's surface are 1494 // surface are clipped. But layers that contribute to child2's surface are
1495 // not clipped explicitly because child2's surface already accounts for 1495 // not clipped explicitly because child2's surface already accounts for
1496 // that clip. 1496 // that clip.
1497 renderSurfaceLayerList.clear(); 1497 renderSurfaceLayerList.clear();
1498 parent->setMasksToBounds(true); 1498 parent->setMasksToBounds(true);
1499 LayerTreeHostCommon::calculateDrawTransforms(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList); 1499 LayerTreeHostCommon::calculateDrawProperties(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList);
1500 1500
1501 ASSERT_TRUE(root->renderSurface()); 1501 ASSERT_TRUE(root->renderSurface());
1502 ASSERT_TRUE(child2->renderSurface()); 1502 ASSERT_TRUE(child2->renderSurface());
1503 1503
1504 EXPECT_FALSE(root->isClipped()); 1504 EXPECT_FALSE(root->isClipped());
1505 EXPECT_TRUE(root->renderSurface()->isClipped()); 1505 EXPECT_TRUE(root->renderSurface()->isClipped());
1506 EXPECT_TRUE(parent->isClipped()); 1506 EXPECT_TRUE(parent->isClipped());
1507 EXPECT_TRUE(child1->isClipped()); 1507 EXPECT_TRUE(child1->isClipped());
1508 EXPECT_FALSE(child2->isClipped()); 1508 EXPECT_FALSE(child2->isClipped());
1509 EXPECT_TRUE(child2->renderSurface()->isClipped()); 1509 EXPECT_TRUE(child2->renderSurface()->isClipped());
1510 EXPECT_TRUE(grandChild->isClipped()); 1510 EXPECT_TRUE(grandChild->isClipped());
1511 EXPECT_TRUE(leafNode1->isClipped()); 1511 EXPECT_TRUE(leafNode1->isClipped());
1512 EXPECT_FALSE(leafNode2->isClipped()); 1512 EXPECT_FALSE(leafNode2->isClipped());
1513 1513
1514 // Case 3: child2 masksToBounds. The layer and subtree are clipped, and 1514 // Case 3: child2 masksToBounds. The layer and subtree are clipped, and
1515 // child2's renderSurface is not clipped. 1515 // child2's renderSurface is not clipped.
1516 renderSurfaceLayerList.clear(); 1516 renderSurfaceLayerList.clear();
1517 parent->setMasksToBounds(false); 1517 parent->setMasksToBounds(false);
1518 child2->setMasksToBounds(true); 1518 child2->setMasksToBounds(true);
1519 LayerTreeHostCommon::calculateDrawTransforms(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList); 1519 LayerTreeHostCommon::calculateDrawProperties(root.get(), parent->bounds(), 1 , 1, dummyMaxTextureSize, renderSurfaceLayerList);
1520 1520
1521 ASSERT_TRUE(root->renderSurface()); 1521 ASSERT_TRUE(root->renderSurface());
1522 ASSERT_TRUE(child2->renderSurface()); 1522 ASSERT_TRUE(child2->renderSurface());
1523 1523
1524 EXPECT_FALSE(root->isClipped()); 1524 EXPECT_FALSE(root->isClipped());
1525 EXPECT_TRUE(root->renderSurface()->isClipped()); 1525 EXPECT_TRUE(root->renderSurface()->isClipped());
1526 EXPECT_FALSE(parent->isClipped()); 1526 EXPECT_FALSE(parent->isClipped());
1527 EXPECT_FALSE(child1->isClipped()); 1527 EXPECT_FALSE(child1->isClipped());
1528 EXPECT_TRUE(child2->isClipped()); 1528 EXPECT_TRUE(child2->isClipped());
1529 EXPECT_FALSE(child2->renderSurface()->isClipped()); 1529 EXPECT_FALSE(child2->renderSurface()->isClipped());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1568 1568
1569 // Force everyone to be a render surface. 1569 // Force everyone to be a render surface.
1570 child->setOpacity(0.4f); 1570 child->setOpacity(0.4f);
1571 grandChild1->setOpacity(0.5); 1571 grandChild1->setOpacity(0.5);
1572 grandChild2->setOpacity(0.5); 1572 grandChild2->setOpacity(0.5);
1573 grandChild3->setOpacity(0.5); 1573 grandChild3->setOpacity(0.5);
1574 grandChild4->setOpacity(0.5); 1574 grandChild4->setOpacity(0.5);
1575 1575
1576 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 1576 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
1577 int dummyMaxTextureSize = 512; 1577 int dummyMaxTextureSize = 512;
1578 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 1578 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
1579 1579
1580 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(5, 5), gfx::Size(10, 10)), grandChild1-> drawableContentRect()); 1580 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(5, 5), gfx::Size(10, 10)), grandChild1-> drawableContentRect());
1581 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(15, 15), gfx::Size(5, 5)), grandChild3-> drawableContentRect()); 1581 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(15, 15), gfx::Size(5, 5)), grandChild3-> drawableContentRect());
1582 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(15, 15), gfx::Size(5, 5)), grandChild3-> drawableContentRect()); 1582 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(15, 15), gfx::Size(5, 5)), grandChild3-> drawableContentRect());
1583 EXPECT_TRUE(grandChild4->drawableContentRect().IsEmpty()); 1583 EXPECT_TRUE(grandChild4->drawableContentRect().IsEmpty());
1584 } 1584 }
1585 1585
1586 TEST(LayerTreeHostCommonTest, verifyClipRectIsPropagatedCorrectlyToSurfaces) 1586 TEST(LayerTreeHostCommonTest, verifyClipRectIsPropagatedCorrectlyToSurfaces)
1587 { 1587 {
1588 // Verify that renderSurfaces (and their layers) get the appropriate clipRec ts when their parent masksToBounds is true. 1588 // Verify that renderSurfaces (and their layers) get the appropriate clipRec ts when their parent masksToBounds is true.
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 grandChild1->setForceRenderSurface(true); 1638 grandChild1->setForceRenderSurface(true);
1639 grandChild2->setOpacity(0.5); 1639 grandChild2->setOpacity(0.5);
1640 grandChild2->setForceRenderSurface(true); 1640 grandChild2->setForceRenderSurface(true);
1641 grandChild3->setOpacity(0.5); 1641 grandChild3->setOpacity(0.5);
1642 grandChild3->setForceRenderSurface(true); 1642 grandChild3->setForceRenderSurface(true);
1643 grandChild4->setOpacity(0.5); 1643 grandChild4->setOpacity(0.5);
1644 grandChild4->setForceRenderSurface(true); 1644 grandChild4->setForceRenderSurface(true);
1645 1645
1646 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 1646 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
1647 int dummyMaxTextureSize = 512; 1647 int dummyMaxTextureSize = 512;
1648 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 1648 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
1649 1649
1650 ASSERT_TRUE(grandChild1->renderSurface()); 1650 ASSERT_TRUE(grandChild1->renderSurface());
1651 ASSERT_TRUE(grandChild2->renderSurface()); 1651 ASSERT_TRUE(grandChild2->renderSurface());
1652 ASSERT_TRUE(grandChild3->renderSurface()); 1652 ASSERT_TRUE(grandChild3->renderSurface());
1653 EXPECT_FALSE(grandChild4->renderSurface()); // Because grandChild4 is entire ly clipped, it is expected to not have a renderSurface. 1653 EXPECT_FALSE(grandChild4->renderSurface()); // Because grandChild4 is entire ly clipped, it is expected to not have a renderSurface.
1654 1654
1655 // Surfaces are clipped by their parent, but un-affected by the owning layer 's masksToBounds. 1655 // Surfaces are clipped by their parent, but un-affected by the owning layer 's masksToBounds.
1656 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild1-> renderSurface()->clipRect()); 1656 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild1-> renderSurface()->clipRect());
1657 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild2-> renderSurface()->clipRect()); 1657 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild2-> renderSurface()->clipRect());
1658 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild3-> renderSurface()->clipRect()); 1658 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(0, 0), gfx::Size(20, 20)), grandChild3-> renderSurface()->clipRect());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 setLayerPropertiesForTesting(parent.get(), layerTransform, sublayerTransform , gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1703 setLayerPropertiesForTesting(parent.get(), layerTransform, sublayerTransform , gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1704 setLayerPropertiesForTesting(renderSurface1.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1704 setLayerPropertiesForTesting(renderSurface1.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1705 setLayerPropertiesForTesting(renderSurface2.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1705 setLayerPropertiesForTesting(renderSurface2.get(), layerTransform, sublayerT ransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1706 setLayerPropertiesForTesting(childOfRoot.get(), layerTransform, sublayerTran sform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1706 setLayerPropertiesForTesting(childOfRoot.get(), layerTransform, sublayerTran sform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1707 setLayerPropertiesForTesting(childOfRS1.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1707 setLayerPropertiesForTesting(childOfRS1.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1708 setLayerPropertiesForTesting(childOfRS2.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1708 setLayerPropertiesForTesting(childOfRS2.get(), layerTransform, sublayerTrans form, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1709 setLayerPropertiesForTesting(grandChildOfRoot.get(), layerTransform, sublaye rTransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false) ; 1709 setLayerPropertiesForTesting(grandChildOfRoot.get(), layerTransform, sublaye rTransform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false) ;
1710 setLayerPropertiesForTesting(grandChildOfRS1.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1710 setLayerPropertiesForTesting(grandChildOfRS1.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1711 setLayerPropertiesForTesting(grandChildOfRS2.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false); 1711 setLayerPropertiesForTesting(grandChildOfRS2.get(), layerTransform, sublayer Transform, gfx::PointF(0.25, 0), gfx::PointF(2.5, 0), gfx::Size(10, 10), false);
1712 1712
1713 executeCalculateDrawTransformsAndVisibility(parent.get()); 1713 executeCalculateDrawProperties(parent.get());
1714 1714
1715 // Only layers that are associated with render surfaces should have an actua l renderSurface() value. 1715 // Only layers that are associated with render surfaces should have an actua l renderSurface() value.
1716 // 1716 //
1717 ASSERT_TRUE(parent->renderSurface()); 1717 ASSERT_TRUE(parent->renderSurface());
1718 ASSERT_FALSE(childOfRoot->renderSurface()); 1718 ASSERT_FALSE(childOfRoot->renderSurface());
1719 ASSERT_FALSE(grandChildOfRoot->renderSurface()); 1719 ASSERT_FALSE(grandChildOfRoot->renderSurface());
1720 1720
1721 ASSERT_TRUE(renderSurface1->renderSurface()); 1721 ASSERT_TRUE(renderSurface1->renderSurface());
1722 ASSERT_FALSE(childOfRS1->renderSurface()); 1722 ASSERT_FALSE(childOfRS1->renderSurface());
1723 ASSERT_FALSE(grandChildOfRS1->renderSurface()); 1723 ASSERT_FALSE(grandChildOfRS1->renderSurface());
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
2066 root->addChild(child1); 2066 root->addChild(child1);
2067 root->addChild(child2); 2067 root->addChild(child2);
2068 root->addChild(child3); 2068 root->addChild(child3);
2069 2069
2070 gfx::Transform identityMatrix; 2070 gfx::Transform identityMatrix;
2071 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2071 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2072 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(50, 50), false); 2072 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(50, 50), false);
2073 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2073 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2074 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2074 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2075 2075
2076 executeCalculateDrawTransformsAndVisibility(root.get()); 2076 executeCalculateDrawProperties(root.get());
2077 2077
2078 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2078 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2079 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2079 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2080 2080
2081 // Layers that do not draw content should have empty visibleContentRects. 2081 // Layers that do not draw content should have empty visibleContentRects.
2082 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2082 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2083 2083
2084 // layer visibleContentRects are clipped by their targetSurface 2084 // layer visibleContentRects are clipped by their targetSurface
2085 EXPECT_RECT_EQ(gfx::Rect(0, 0, 50, 50), child1->visibleContentRect()); 2085 EXPECT_RECT_EQ(gfx::Rect(0, 0, 50, 50), child1->visibleContentRect());
2086 EXPECT_RECT_EQ(gfx::Rect(0, 0, 25, 25), child2->visibleContentRect()); 2086 EXPECT_RECT_EQ(gfx::Rect(0, 0, 25, 25), child2->visibleContentRect());
(...skipping 18 matching lines...) Expand all
2105 child->addChild(grandChild3); 2105 child->addChild(grandChild3);
2106 2106
2107 gfx::Transform identityMatrix; 2107 gfx::Transform identityMatrix;
2108 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2108 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2109 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2109 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2110 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false); 2110 setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false);
2111 setLayerPropertiesForTesting(grandChild2.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2111 setLayerPropertiesForTesting(grandChild2.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2112 setLayerPropertiesForTesting(grandChild3.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2112 setLayerPropertiesForTesting(grandChild3.get(), identityMatrix, identityMatr ix, gfx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2113 2113
2114 child->setMasksToBounds(true); 2114 child->setMasksToBounds(true);
2115 executeCalculateDrawTransformsAndVisibility(root.get()); 2115 executeCalculateDrawProperties(root.get());
2116 2116
2117 ASSERT_FALSE(child->renderSurface()); 2117 ASSERT_FALSE(child->renderSurface());
2118 2118
2119 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2119 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2120 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2120 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2121 2121
2122 // Layers that do not draw content should have empty visibleContentRects. 2122 // Layers that do not draw content should have empty visibleContentRects.
2123 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2123 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2124 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), child->visibleContentRect()); 2124 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), child->visibleContentRect());
2125 2125
(...skipping 21 matching lines...) Expand all
2147 renderSurface1->addChild(child3); 2147 renderSurface1->addChild(child3);
2148 2148
2149 gfx::Transform identityMatrix; 2149 gfx::Transform identityMatrix;
2150 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2150 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2151 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false); 2151 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
2152 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false); 2152 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false);
2153 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2153 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2154 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2154 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2155 2155
2156 renderSurface1->setForceRenderSurface(true); 2156 renderSurface1->setForceRenderSurface(true);
2157 executeCalculateDrawTransformsAndVisibility(root.get()); 2157 executeCalculateDrawProperties(root.get());
2158 2158
2159 ASSERT_TRUE(renderSurface1->renderSurface()); 2159 ASSERT_TRUE(renderSurface1->renderSurface());
2160 2160
2161 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2161 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2162 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2162 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2163 2163
2164 // Layers that do not draw content should have empty visibleContentRects. 2164 // Layers that do not draw content should have empty visibleContentRects.
2165 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2165 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2166 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect()); 2166 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect());
2167 2167
(...skipping 24 matching lines...) Expand all
2192 2192
2193 gfx::Transform identityMatrix; 2193 gfx::Transform identityMatrix;
2194 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2194 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2195 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false); 2195 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
2196 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false); 2196 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false);
2197 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2197 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2198 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2198 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2199 2199
2200 root->setMasksToBounds(true); 2200 root->setMasksToBounds(true);
2201 renderSurface1->setForceRenderSurface(true); 2201 renderSurface1->setForceRenderSurface(true);
2202 executeCalculateDrawTransformsAndVisibility(root.get()); 2202 executeCalculateDrawProperties(root.get());
2203 2203
2204 ASSERT_TRUE(renderSurface1->renderSurface()); 2204 ASSERT_TRUE(renderSurface1->renderSurface());
2205 2205
2206 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2206 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2207 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2207 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2208 2208
2209 // Layers that do not draw content should have empty visibleContentRects. 2209 // Layers that do not draw content should have empty visibleContentRects.
2210 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2210 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2211 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect()); 2211 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect());
2212 2212
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2244 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2244 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2245 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false); 2245 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
2246 setLayerPropertiesForTesting(renderSurface2.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(7, 13), false); 2246 setLayerPropertiesForTesting(renderSurface2.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(7, 13), false);
2247 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false); 2247 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(5, 5), gfx::Size(50, 50), false);
2248 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false); 2248 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(75, 75), gfx::Size(50, 50), false);
2249 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false); 2249 setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(125, 125), gfx::Size(50, 50), false);
2250 2250
2251 root->setMasksToBounds(true); 2251 root->setMasksToBounds(true);
2252 renderSurface1->setForceRenderSurface(true); 2252 renderSurface1->setForceRenderSurface(true);
2253 renderSurface2->setForceRenderSurface(true); 2253 renderSurface2->setForceRenderSurface(true);
2254 executeCalculateDrawTransformsAndVisibility(root.get()); 2254 executeCalculateDrawProperties(root.get());
2255 2255
2256 ASSERT_TRUE(renderSurface1->renderSurface()); 2256 ASSERT_TRUE(renderSurface1->renderSurface());
2257 ASSERT_TRUE(renderSurface2->renderSurface()); 2257 ASSERT_TRUE(renderSurface2->renderSurface());
2258 2258
2259 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2259 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2260 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2260 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2261 2261
2262 // Layers that do not draw content should have empty visibleContentRects. 2262 // Layers that do not draw content should have empty visibleContentRects.
2263 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2263 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2264 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect()); 2264 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 renderSurface1->addChild(child1); 2296 renderSurface1->addChild(child1);
2297 2297
2298 gfx::Transform identityMatrix; 2298 gfx::Transform identityMatrix;
2299 gfx::Transform childRotation; 2299 gfx::Transform childRotation;
2300 childRotation.Rotate(45); 2300 childRotation.Rotate(45);
2301 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2301 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2302 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false); 2302 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
2303 setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, gf x::PointF(0.5, 0.5), gfx::PointF(25, 25), gfx::Size(50, 50), false); 2303 setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, gf x::PointF(0.5, 0.5), gfx::PointF(25, 25), gfx::Size(50, 50), false);
2304 2304
2305 renderSurface1->setForceRenderSurface(true); 2305 renderSurface1->setForceRenderSurface(true);
2306 executeCalculateDrawTransformsAndVisibility(root.get()); 2306 executeCalculateDrawProperties(root.get());
2307 2307
2308 ASSERT_TRUE(renderSurface1->renderSurface()); 2308 ASSERT_TRUE(renderSurface1->renderSurface());
2309 2309
2310 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect()); 2310 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->renderSurface()->drawableCon tentRect());
2311 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect()); 2311 EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 100), root->drawableContentRect());
2312 2312
2313 // Layers that do not draw content should have empty visibleContentRects. 2313 // Layers that do not draw content should have empty visibleContentRects.
2314 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect()); 2314 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), root->visibleContentRect());
2315 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect()); 2315 EXPECT_RECT_EQ(gfx::Rect(0, 0, 0, 0), renderSurface1->visibleContentRect());
2316 2316
(...skipping 20 matching lines...) Expand all
2337 2337
2338 gfx::Transform identityMatrix; 2338 gfx::Transform identityMatrix;
2339 gfx::Transform childRotation; 2339 gfx::Transform childRotation;
2340 childRotation.Rotate(45); 2340 childRotation.Rotate(45);
2341 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(50, 50), false); 2341 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(50, 50), false);
2342 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false); 2342 setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(3, 4), false);
2343 setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, gf x::PointF(0.5, 0.5), gfx::PointF(25, 25), gfx::Size(50, 50), false); 2343 setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, gf x::PointF(0.5, 0.5), gfx::PointF(25, 25), gfx::Size(50, 50), false);
2344 2344
2345 root->setMasksToBounds(true); 2345 root->setMasksToBounds(true);
2346 renderSurface1->setForceRenderSurface(true); 2346 renderSurface1->setForceRenderSurface(true);
2347 executeCalculateDrawTransformsAndVisibility(root.get()); 2347 executeCalculateDrawProperties(root.get());
2348 2348
2349 ASSERT_TRUE(renderSurface1->renderSurface()); 2349 ASSERT_TRUE(renderSurface1->renderSurface());
2350 2350
2351 // The clipped surface clamps the drawableContentRect that encloses the rota ted layer. 2351 // The clipped surface clamps the drawableContentRect that encloses the rota ted layer.
2352 int diagonalRadius = ceil(sqrt(2.0) * 25); 2352 int diagonalRadius = ceil(sqrt(2.0) * 25);
2353 gfx::Rect unclippedSurfaceContent = gfx::Rect(50 - diagonalRadius, 50 - diag onalRadius, diagonalRadius * 2, diagonalRadius * 2); 2353 gfx::Rect unclippedSurfaceContent = gfx::Rect(50 - diagonalRadius, 50 - diag onalRadius, diagonalRadius * 2, diagonalRadius * 2);
2354 gfx::Rect expectedSurfaceDrawableContent = gfx::IntersectRects(unclippedSurf aceContent, gfx::Rect(0, 0, 50, 50)); 2354 gfx::Rect expectedSurfaceDrawableContent = gfx::IntersectRects(unclippedSurf aceContent, gfx::Rect(0, 0, 50, 50));
2355 EXPECT_RECT_EQ(expectedSurfaceDrawableContent, renderSurface1->renderSurface ()->drawableContentRect()); 2355 EXPECT_RECT_EQ(expectedSurfaceDrawableContent, renderSurface1->renderSurface ()->drawableContentRect());
2356 2356
2357 // On the clipped surface, only a quarter of the child1 is visible, but whe n rotating 2357 // On the clipped surface, only a quarter of the child1 is visible, but whe n rotating
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2391 root->setContentsScale(deviceScaleFactor); 2391 root->setContentsScale(deviceScaleFactor);
2392 renderSurface1->setContentsScale(deviceScaleFactor); 2392 renderSurface1->setContentsScale(deviceScaleFactor);
2393 renderSurface2->setContentsScale(deviceScaleFactor); 2393 renderSurface2->setContentsScale(deviceScaleFactor);
2394 child1->setContentsScale(deviceScaleFactor); 2394 child1->setContentsScale(deviceScaleFactor);
2395 child2->setContentsScale(deviceScaleFactor); 2395 child2->setContentsScale(deviceScaleFactor);
2396 child3->setContentsScale(deviceScaleFactor); 2396 child3->setContentsScale(deviceScaleFactor);
2397 2397
2398 root->setMasksToBounds(true); 2398 root->setMasksToBounds(true);
2399 renderSurface1->setForceRenderSurface(true); 2399 renderSurface1->setForceRenderSurface(true);
2400 renderSurface2->setForceRenderSurface(true); 2400 renderSurface2->setForceRenderSurface(true);
2401 executeCalculateDrawTransformsAndVisibility(root.get(), deviceScaleFactor); 2401 executeCalculateDrawProperties(root.get(), deviceScaleFactor);
2402 2402
2403 ASSERT_TRUE(renderSurface1->renderSurface()); 2403 ASSERT_TRUE(renderSurface1->renderSurface());
2404 ASSERT_TRUE(renderSurface2->renderSurface()); 2404 ASSERT_TRUE(renderSurface2->renderSurface());
2405 2405
2406 // DrawableContentRects for all layers and surfaces are scaled by deviceScal eFactor. 2406 // DrawableContentRects for all layers and surfaces are scaled by deviceScal eFactor.
2407 EXPECT_RECT_EQ(gfx::Rect(0, 0, 200, 200), root->renderSurface()->drawableCon tentRect()); 2407 EXPECT_RECT_EQ(gfx::Rect(0, 0, 200, 200), root->renderSurface()->drawableCon tentRect());
2408 EXPECT_RECT_EQ(gfx::Rect(0, 0, 200, 200), root->drawableContentRect()); 2408 EXPECT_RECT_EQ(gfx::Rect(0, 0, 200, 200), root->drawableContentRect());
2409 EXPECT_RECT_EQ(gfx::Rect(10, 10, 190, 190), renderSurface1->renderSurface()- >drawableContentRect()); 2409 EXPECT_RECT_EQ(gfx::Rect(10, 10, 190, 190), renderSurface1->renderSurface()- >drawableContentRect());
2410 2410
2411 // renderSurface2 lives in the "unclipped universe" of renderSurface1, and 2411 // renderSurface2 lives in the "unclipped universe" of renderSurface1, and
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
2480 setLayerPropertiesForTesting(backFacingChild.get(), backfaceMatrix, identity Matrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2480 setLayerPropertiesForTesting(backFacingChild.get(), backfaceMatrix, identity Matrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2481 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2481 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2482 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, identi tyMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2482 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, identi tyMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2483 setLayerPropertiesForTesting(frontFacingChildOfFrontFacingSurface.get(), ide ntityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100 , 100), false); 2483 setLayerPropertiesForTesting(frontFacingChildOfFrontFacingSurface.get(), ide ntityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100 , 100), false);
2484 setLayerPropertiesForTesting(backFacingChildOfFrontFacingSurface.get(), back faceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2484 setLayerPropertiesForTesting(backFacingChildOfFrontFacingSurface.get(), back faceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2485 setLayerPropertiesForTesting(frontFacingChildOfBackFacingSurface.get(), iden tityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2485 setLayerPropertiesForTesting(frontFacingChildOfBackFacingSurface.get(), iden tityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2486 setLayerPropertiesForTesting(backFacingChildOfBackFacingSurface.get(), backf aceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2486 setLayerPropertiesForTesting(backFacingChildOfBackFacingSurface.get(), backf aceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2487 2487
2488 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 2488 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
2489 int dummyMaxTextureSize = 512; 2489 int dummyMaxTextureSize = 512;
2490 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 2490 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
2491 2491
2492 // Verify which renderSurfaces were created. 2492 // Verify which renderSurfaces were created.
2493 EXPECT_FALSE(frontFacingChild->renderSurface()); 2493 EXPECT_FALSE(frontFacingChild->renderSurface());
2494 EXPECT_FALSE(backFacingChild->renderSurface()); 2494 EXPECT_FALSE(backFacingChild->renderSurface());
2495 EXPECT_TRUE(frontFacingSurface->renderSurface()); 2495 EXPECT_TRUE(frontFacingSurface->renderSurface());
2496 EXPECT_TRUE(backFacingSurface->renderSurface()); 2496 EXPECT_TRUE(backFacingSurface->renderSurface());
2497 EXPECT_FALSE(frontFacingChildOfFrontFacingSurface->renderSurface()); 2497 EXPECT_FALSE(frontFacingChildOfFrontFacingSurface->renderSurface());
2498 EXPECT_FALSE(backFacingChildOfFrontFacingSurface->renderSurface()); 2498 EXPECT_FALSE(backFacingChildOfFrontFacingSurface->renderSurface());
2499 EXPECT_FALSE(frontFacingChildOfBackFacingSurface->renderSurface()); 2499 EXPECT_FALSE(frontFacingChildOfBackFacingSurface->renderSurface());
2500 EXPECT_FALSE(backFacingChildOfBackFacingSurface->renderSurface()); 2500 EXPECT_FALSE(backFacingChildOfBackFacingSurface->renderSurface());
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
2579 setLayerPropertiesForTesting(backFacingChild.get(), backfaceMatrix, identity Matrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2579 setLayerPropertiesForTesting(backFacingChild.get(), backfaceMatrix, identity Matrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2580 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // surface transform style is preserve-3d. 2580 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // surface transform style is preserve-3d.
2581 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, identi tyMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // s urface transform style is preserve-3d. 2581 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, identi tyMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // s urface transform style is preserve-3d.
2582 setLayerPropertiesForTesting(frontFacingChildOfFrontFacingSurface.get(), ide ntityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100 , 100), false); 2582 setLayerPropertiesForTesting(frontFacingChildOfFrontFacingSurface.get(), ide ntityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100 , 100), false);
2583 setLayerPropertiesForTesting(backFacingChildOfFrontFacingSurface.get(), back faceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2583 setLayerPropertiesForTesting(backFacingChildOfFrontFacingSurface.get(), back faceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2584 setLayerPropertiesForTesting(frontFacingChildOfBackFacingSurface.get(), iden tityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2584 setLayerPropertiesForTesting(frontFacingChildOfBackFacingSurface.get(), iden tityMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2585 setLayerPropertiesForTesting(backFacingChildOfBackFacingSurface.get(), backf aceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2585 setLayerPropertiesForTesting(backFacingChildOfBackFacingSurface.get(), backf aceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2586 2586
2587 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 2587 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
2588 int dummyMaxTextureSize = 512; 2588 int dummyMaxTextureSize = 512;
2589 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 2589 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
2590 2590
2591 // Verify which renderSurfaces were created. 2591 // Verify which renderSurfaces were created.
2592 EXPECT_FALSE(frontFacingChild->renderSurface()); 2592 EXPECT_FALSE(frontFacingChild->renderSurface());
2593 EXPECT_FALSE(backFacingChild->renderSurface()); 2593 EXPECT_FALSE(backFacingChild->renderSurface());
2594 EXPECT_TRUE(frontFacingSurface->renderSurface()); 2594 EXPECT_TRUE(frontFacingSurface->renderSurface());
2595 EXPECT_FALSE(backFacingSurface->renderSurface()); 2595 EXPECT_FALSE(backFacingSurface->renderSurface());
2596 EXPECT_FALSE(frontFacingChildOfFrontFacingSurface->renderSurface()); 2596 EXPECT_FALSE(frontFacingChildOfFrontFacingSurface->renderSurface());
2597 EXPECT_FALSE(backFacingChildOfFrontFacingSurface->renderSurface()); 2597 EXPECT_FALSE(backFacingChildOfFrontFacingSurface->renderSurface());
2598 EXPECT_FALSE(frontFacingChildOfBackFacingSurface->renderSurface()); 2598 EXPECT_FALSE(frontFacingChildOfBackFacingSurface->renderSurface());
2599 EXPECT_FALSE(backFacingChildOfBackFacingSurface->renderSurface()); 2599 EXPECT_FALSE(backFacingChildOfBackFacingSurface->renderSurface());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2659 2659
2660 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2660 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2661 setLayerPropertiesForTesting(child.get(), backfaceMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2661 setLayerPropertiesForTesting(child.get(), backfaceMatrix, identityMatrix, gf x::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2662 setLayerPropertiesForTesting(animatingSurface.get(), backfaceMatrix, identit yMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2662 setLayerPropertiesForTesting(animatingSurface.get(), backfaceMatrix, identit yMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2663 setLayerPropertiesForTesting(childOfAnimatingSurface.get(), backfaceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false ); 2663 setLayerPropertiesForTesting(childOfAnimatingSurface.get(), backfaceMatrix, identityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false );
2664 setLayerPropertiesForTesting(animatingChild.get(), backfaceMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2664 setLayerPropertiesForTesting(animatingChild.get(), backfaceMatrix, identityM atrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2665 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2665 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2666 2666
2667 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 2667 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
2668 int dummyMaxTextureSize = 512; 2668 int dummyMaxTextureSize = 512;
2669 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 2669 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
2670 2670
2671 EXPECT_FALSE(child->renderSurface()); 2671 EXPECT_FALSE(child->renderSurface());
2672 EXPECT_TRUE(animatingSurface->renderSurface()); 2672 EXPECT_TRUE(animatingSurface->renderSurface());
2673 EXPECT_FALSE(childOfAnimatingSurface->renderSurface()); 2673 EXPECT_FALSE(childOfAnimatingSurface->renderSurface());
2674 EXPECT_FALSE(animatingChild->renderSurface()); 2674 EXPECT_FALSE(animatingChild->renderSurface());
2675 EXPECT_FALSE(child2->renderSurface()); 2675 EXPECT_FALSE(child2->renderSurface());
2676 2676
2677 // Verify that the animatingChild and childOfAnimatingSurface were not culle d, but that child was. 2677 // Verify that the animatingChild and childOfAnimatingSurface were not culle d, but that child was.
2678 ASSERT_EQ(2u, renderSurfaceLayerList.size()); 2678 ASSERT_EQ(2u, renderSurfaceLayerList.size());
2679 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 2679 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2725 backfaceMatrix.Translate(-50, -50); 2725 backfaceMatrix.Translate(-50, -50);
2726 2726
2727 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // parent trans form style is preserve3d. 2727 setLayerPropertiesForTesting(parent.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), true); // parent trans form style is preserve3d.
2728 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); // surface transform style is flat. 2728 setLayerPropertiesForTesting(frontFacingSurface.get(), identityMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); // surface transform style is flat.
2729 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); // surface transform style is flat. 2729 setLayerPropertiesForTesting(backFacingSurface.get(), backfaceMatrix, ident ityMatrix, gfx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); // surface transform style is flat.
2730 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2730 setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2731 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false); 2731 setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, g fx::PointF(0, 0), gfx::PointF(0, 0), gfx::Size(100, 100), false);
2732 2732
2733 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 2733 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
2734 int dummyMaxTextureSize = 512; 2734 int dummyMaxTextureSize = 512;
2735 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 2735 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
2736 2736
2737 // Verify which renderSurfaces were created. 2737 // Verify which renderSurfaces were created.
2738 EXPECT_TRUE(frontFacingSurface->renderSurface()); 2738 EXPECT_TRUE(frontFacingSurface->renderSurface());
2739 EXPECT_FALSE(backFacingSurface->renderSurface()); // because it should be cu lled 2739 EXPECT_FALSE(backFacingSurface->renderSurface()); // because it should be cu lled
2740 EXPECT_FALSE(child1->renderSurface()); 2740 EXPECT_FALSE(child1->renderSurface());
2741 EXPECT_FALSE(child2->renderSurface()); 2741 EXPECT_FALSE(child2->renderSurface());
2742 2742
2743 // Verify the renderSurfaceLayerList. The back-facing surface should be cull ed. 2743 // Verify the renderSurfaceLayerList. The back-facing surface should be cull ed.
2744 ASSERT_EQ(2u, renderSurfaceLayerList.size()); 2744 ASSERT_EQ(2u, renderSurfaceLayerList.size());
2745 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id()); 2745 EXPECT_EQ(parent->id(), renderSurfaceLayerList[0]->id());
(...skipping 29 matching lines...) Expand all
2775 2775
2776 gfx::Transform identityMatrix; 2776 gfx::Transform identityMatrix;
2777 gfx::PointF anchor(0, 0); 2777 gfx::PointF anchor(0, 0);
2778 gfx::PointF position(0, 0); 2778 gfx::PointF position(0, 0);
2779 gfx::Size bounds(100, 100); 2779 gfx::Size bounds(100, 100);
2780 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false); 2780 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false);
2781 root->setDrawsContent(true); 2781 root->setDrawsContent(true);
2782 2782
2783 std::vector<LayerImpl*> renderSurfaceLayerList; 2783 std::vector<LayerImpl*> renderSurfaceLayerList;
2784 int dummyMaxTextureSize = 512; 2784 int dummyMaxTextureSize = 512;
2785 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 2785 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
2786 2786
2787 // Sanity check the scenario we just created. 2787 // Sanity check the scenario we just created.
2788 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2788 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2789 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2789 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2790 2790
2791 // Hit testing for a point outside the layer should return a null pointer. 2791 // Hit testing for a point outside the layer should return a null pointer.
2792 gfx::Point testPoint(101, 101); 2792 gfx::Point testPoint(101, 101);
2793 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 2793 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
2794 EXPECT_FALSE(resultLayer); 2794 EXPECT_FALSE(resultLayer);
2795 2795
(...skipping 26 matching lines...) Expand all
2822 2822
2823 gfx::Transform identityMatrix; 2823 gfx::Transform identityMatrix;
2824 gfx::PointF anchor(0, 0); 2824 gfx::PointF anchor(0, 0);
2825 gfx::PointF position(0, 0); 2825 gfx::PointF position(0, 0);
2826 gfx::Size bounds(100, 100); 2826 gfx::Size bounds(100, 100);
2827 setLayerPropertiesForTesting(root.get(), uninvertibleTransform, identityMatr ix, anchor, position, bounds, false); 2827 setLayerPropertiesForTesting(root.get(), uninvertibleTransform, identityMatr ix, anchor, position, bounds, false);
2828 root->setDrawsContent(true); 2828 root->setDrawsContent(true);
2829 2829
2830 std::vector<LayerImpl*> renderSurfaceLayerList; 2830 std::vector<LayerImpl*> renderSurfaceLayerList;
2831 int dummyMaxTextureSize = 512; 2831 int dummyMaxTextureSize = 512;
2832 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 2832 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
2833 2833
2834 // Sanity check the scenario we just created. 2834 // Sanity check the scenario we just created.
2835 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2835 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2836 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2836 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2837 ASSERT_FALSE(root->screenSpaceTransform().IsInvertible()); 2837 ASSERT_FALSE(root->screenSpaceTransform().IsInvertible());
2838 2838
2839 // Hit testing any point should not hit the layer. If the invertible matrix is 2839 // Hit testing any point should not hit the layer. If the invertible matrix is
2840 // accidentally ignored and treated like an identity, then the hit testing w ill 2840 // accidentally ignored and treated like an identity, then the hit testing w ill
2841 // incorrectly hit the layer when it shouldn't. 2841 // incorrectly hit the layer when it shouldn't.
2842 gfx::Point testPoint(1, 1); 2842 gfx::Point testPoint(1, 1);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
2874 2874
2875 gfx::Transform identityMatrix; 2875 gfx::Transform identityMatrix;
2876 gfx::PointF anchor(0, 0); 2876 gfx::PointF anchor(0, 0);
2877 gfx::PointF position(50, 50); // this layer is positioned, and hit testing s hould correctly know where the layer is located. 2877 gfx::PointF position(50, 50); // this layer is positioned, and hit testing s hould correctly know where the layer is located.
2878 gfx::Size bounds(100, 100); 2878 gfx::Size bounds(100, 100);
2879 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false); 2879 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false);
2880 root->setDrawsContent(true); 2880 root->setDrawsContent(true);
2881 2881
2882 std::vector<LayerImpl*> renderSurfaceLayerList; 2882 std::vector<LayerImpl*> renderSurfaceLayerList;
2883 int dummyMaxTextureSize = 512; 2883 int dummyMaxTextureSize = 512;
2884 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 2884 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
2885 2885
2886 // Sanity check the scenario we just created. 2886 // Sanity check the scenario we just created.
2887 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2887 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2888 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2888 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2889 2889
2890 // Hit testing for a point outside the layer should return a null pointer. 2890 // Hit testing for a point outside the layer should return a null pointer.
2891 gfx::Point testPoint(49, 49); 2891 gfx::Point testPoint(49, 49);
2892 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 2892 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
2893 EXPECT_FALSE(resultLayer); 2893 EXPECT_FALSE(resultLayer);
2894 2894
(...skipping 24 matching lines...) Expand all
2919 MathUtil::rotateEulerAngles(&rotation45DegreesAboutCenter, 0, 0, 45); 2919 MathUtil::rotateEulerAngles(&rotation45DegreesAboutCenter, 0, 0, 45);
2920 rotation45DegreesAboutCenter.Translate(-50, -50); 2920 rotation45DegreesAboutCenter.Translate(-50, -50);
2921 gfx::PointF anchor(0, 0); 2921 gfx::PointF anchor(0, 0);
2922 gfx::PointF position(0, 0); 2922 gfx::PointF position(0, 0);
2923 gfx::Size bounds(100, 100); 2923 gfx::Size bounds(100, 100);
2924 setLayerPropertiesForTesting(root.get(), rotation45DegreesAboutCenter, ident ityMatrix, anchor, position, bounds, false); 2924 setLayerPropertiesForTesting(root.get(), rotation45DegreesAboutCenter, ident ityMatrix, anchor, position, bounds, false);
2925 root->setDrawsContent(true); 2925 root->setDrawsContent(true);
2926 2926
2927 std::vector<LayerImpl*> renderSurfaceLayerList; 2927 std::vector<LayerImpl*> renderSurfaceLayerList;
2928 int dummyMaxTextureSize = 512; 2928 int dummyMaxTextureSize = 512;
2929 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 2929 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
2930 2930
2931 // Sanity check the scenario we just created. 2931 // Sanity check the scenario we just created.
2932 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2932 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2933 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2933 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2934 2934
2935 // Hit testing for points outside the layer. 2935 // Hit testing for points outside the layer.
2936 // These corners would have been inside the un-transformed layer, but they s hould not hit the correctly transformed layer. 2936 // These corners would have been inside the un-transformed layer, but they s hould not hit the correctly transformed layer.
2937 gfx::Point testPoint(99, 99); 2937 gfx::Point testPoint(99, 99);
2938 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 2938 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
2939 EXPECT_FALSE(resultLayer); 2939 EXPECT_FALSE(resultLayer);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2973 translationByZ.Translate3d(0, 0, -1); 2973 translationByZ.Translate3d(0, 0, -1);
2974 2974
2975 gfx::PointF anchor(0, 0); 2975 gfx::PointF anchor(0, 0);
2976 gfx::PointF position(0, 0); 2976 gfx::PointF position(0, 0);
2977 gfx::Size bounds(100, 100); 2977 gfx::Size bounds(100, 100);
2978 setLayerPropertiesForTesting(root.get(), perspectiveProjectionAboutCenter * translationByZ, identityMatrix, anchor, position, bounds, false); 2978 setLayerPropertiesForTesting(root.get(), perspectiveProjectionAboutCenter * translationByZ, identityMatrix, anchor, position, bounds, false);
2979 root->setDrawsContent(true); 2979 root->setDrawsContent(true);
2980 2980
2981 std::vector<LayerImpl*> renderSurfaceLayerList; 2981 std::vector<LayerImpl*> renderSurfaceLayerList;
2982 int dummyMaxTextureSize = 512; 2982 int dummyMaxTextureSize = 512;
2983 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 2983 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
2984 2984
2985 // Sanity check the scenario we just created. 2985 // Sanity check the scenario we just created.
2986 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 2986 ASSERT_EQ(1u, renderSurfaceLayerList.size());
2987 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 2987 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
2988 2988
2989 // Hit testing for points outside the layer. 2989 // Hit testing for points outside the layer.
2990 // These corners would have been inside the un-transformed layer, but they s hould not hit the correctly transformed layer. 2990 // These corners would have been inside the un-transformed layer, but they s hould not hit the correctly transformed layer.
2991 gfx::Point testPoint(24, 24); 2991 gfx::Point testPoint(24, 24);
2992 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 2992 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
2993 EXPECT_FALSE(resultLayer); 2993 EXPECT_FALSE(resultLayer);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3036 // override contentBounds and contentsScale 3036 // override contentBounds and contentsScale
3037 testLayer->setContentBounds(gfx::Size(100, 100)); 3037 testLayer->setContentBounds(gfx::Size(100, 100));
3038 testLayer->setContentsScale(2, 2); 3038 testLayer->setContentsScale(2, 2);
3039 3039
3040 testLayer->setDrawsContent(true); 3040 testLayer->setDrawsContent(true);
3041 root->addChild(testLayer.Pass()); 3041 root->addChild(testLayer.Pass());
3042 } 3042 }
3043 3043
3044 std::vector<LayerImpl*> renderSurfaceLayerList; 3044 std::vector<LayerImpl*> renderSurfaceLayerList;
3045 int dummyMaxTextureSize = 512; 3045 int dummyMaxTextureSize = 512;
3046 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3046 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3047 3047
3048 // Sanity check the scenario we just created. 3048 // Sanity check the scenario we just created.
3049 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25. 3049 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25.
3050 LayerImpl* testLayer = root->children()[0]; 3050 LayerImpl* testLayer = root->children()[0];
3051 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(), gfx::Size(100, 100)), testLayer->visi bleContentRect()); 3051 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(), gfx::Size(100, 100)), testLayer->visi bleContentRect());
3052 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3052 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3053 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3053 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3054 3054
3055 // Hit testing for a point outside the layer should return a null pointer (t he root layer does not draw content, so it will not be hit tested either). 3055 // Hit testing for a point outside the layer should return a null pointer (t he root layer does not draw content, so it will not be hit tested either).
3056 gfx::Point testPoint(101, 101); 3056 gfx::Point testPoint(101, 101);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
3098 position = gfx::PointF(-50, -50); 3098 position = gfx::PointF(-50, -50);
3099 bounds = gfx::Size(300, 300); 3099 bounds = gfx::Size(300, 300);
3100 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false); 3100 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false);
3101 child->setDrawsContent(true); 3101 child->setDrawsContent(true);
3102 clippingLayer->addChild(child.Pass()); 3102 clippingLayer->addChild(child.Pass());
3103 root->addChild(clippingLayer.Pass()); 3103 root->addChild(clippingLayer.Pass());
3104 } 3104 }
3105 3105
3106 std::vector<LayerImpl*> renderSurfaceLayerList; 3106 std::vector<LayerImpl*> renderSurfaceLayerList;
3107 int dummyMaxTextureSize = 512; 3107 int dummyMaxTextureSize = 512;
3108 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3108 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3109 3109
3110 // Sanity check the scenario we just created. 3110 // Sanity check the scenario we just created.
3111 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3111 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3112 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3112 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3113 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id()); 3113 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id());
3114 3114
3115 // Hit testing for a point outside the layer should return a null pointer. 3115 // Hit testing for a point outside the layer should return a null pointer.
3116 // Despite the child layer being very large, it should be clipped to the roo t layer's bounds. 3116 // Despite the child layer being very large, it should be clipped to the roo t layer's bounds.
3117 gfx::Point testPoint(24, 24); 3117 gfx::Point testPoint(24, 24);
3118 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 3118 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
3186 setLayerPropertiesForTesting(rotatedLeaf.get(), rotatedLeafTransform, id entityMatrix, anchor, position, bounds, false); 3186 setLayerPropertiesForTesting(rotatedLeaf.get(), rotatedLeafTransform, id entityMatrix, anchor, position, bounds, false);
3187 rotatedLeaf->setDrawsContent(true); 3187 rotatedLeaf->setDrawsContent(true);
3188 3188
3189 grandChild->addChild(rotatedLeaf.Pass()); 3189 grandChild->addChild(rotatedLeaf.Pass());
3190 child->addChild(grandChild.Pass()); 3190 child->addChild(grandChild.Pass());
3191 root->addChild(child.Pass()); 3191 root->addChild(child.Pass());
3192 } 3192 }
3193 3193
3194 std::vector<LayerImpl*> renderSurfaceLayerList; 3194 std::vector<LayerImpl*> renderSurfaceLayerList;
3195 int dummyMaxTextureSize = 512; 3195 int dummyMaxTextureSize = 512;
3196 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3196 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3197 3197
3198 // Sanity check the scenario we just created. 3198 // Sanity check the scenario we just created.
3199 // The grandChild is expected to create a renderSurface because it masksToBo unds and is not axis aligned. 3199 // The grandChild is expected to create a renderSurface because it masksToBo unds and is not axis aligned.
3200 ASSERT_EQ(2u, renderSurfaceLayerList.size()); 3200 ASSERT_EQ(2u, renderSurfaceLayerList.size());
3201 ASSERT_EQ(1u, renderSurfaceLayerList[0]->renderSurface()->layerList().size() ); 3201 ASSERT_EQ(1u, renderSurfaceLayerList[0]->renderSurface()->layerList().size() );
3202 ASSERT_EQ(789, renderSurfaceLayerList[0]->renderSurface()->layerList()[0]->i d()); // grandChild's surface. 3202 ASSERT_EQ(789, renderSurfaceLayerList[0]->renderSurface()->layerList()[0]->i d()); // grandChild's surface.
3203 ASSERT_EQ(1u, renderSurfaceLayerList[1]->renderSurface()->layerList().size() ); 3203 ASSERT_EQ(1u, renderSurfaceLayerList[1]->renderSurface()->layerList().size() );
3204 ASSERT_EQ(2468, renderSurfaceLayerList[1]->renderSurface()->layerList()[0]-> id()); 3204 ASSERT_EQ(2468, renderSurfaceLayerList[1]->renderSurface()->layerList()[0]-> id());
3205 3205
3206 // (11, 89) is close to the the bottom left corner within the clip, but it i s not inside the layer. 3206 // (11, 89) is close to the the bottom left corner within the clip, but it i s not inside the layer.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
3266 position = gfx::PointF(60, 60); // 70, 70 in screen space 3266 position = gfx::PointF(60, 60); // 70, 70 in screen space
3267 bounds = gfx::Size(20, 20); 3267 bounds = gfx::Size(20, 20);
3268 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false); 3268 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false);
3269 child->setDrawsContent(true); 3269 child->setDrawsContent(true);
3270 intermediateLayer->addChild(child.Pass()); 3270 intermediateLayer->addChild(child.Pass());
3271 root->addChild(intermediateLayer.Pass()); 3271 root->addChild(intermediateLayer.Pass());
3272 } 3272 }
3273 3273
3274 std::vector<LayerImpl*> renderSurfaceLayerList; 3274 std::vector<LayerImpl*> renderSurfaceLayerList;
3275 int dummyMaxTextureSize = 512; 3275 int dummyMaxTextureSize = 512;
3276 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3276 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3277 3277
3278 // Sanity check the scenario we just created. 3278 // Sanity check the scenario we just created.
3279 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3279 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3280 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3280 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3281 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id()); 3281 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id());
3282 3282
3283 // Hit testing for a point outside the layer should return a null pointer. 3283 // Hit testing for a point outside the layer should return a null pointer.
3284 gfx::Point testPoint(69, 69); 3284 gfx::Point testPoint(69, 69);
3285 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList); 3285 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPoint(test Point, renderSurfaceLayerList);
3286 EXPECT_FALSE(resultLayer); 3286 EXPECT_FALSE(resultLayer);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
3344 root->addChild(child1.Pass()); 3344 root->addChild(child1.Pass());
3345 root->addChild(child2.Pass()); 3345 root->addChild(child2.Pass());
3346 } 3346 }
3347 3347
3348 LayerImpl* child1 = root->children()[0]; 3348 LayerImpl* child1 = root->children()[0];
3349 LayerImpl* child2 = root->children()[1]; 3349 LayerImpl* child2 = root->children()[1];
3350 LayerImpl* grandChild1 = child1->children()[0]; 3350 LayerImpl* grandChild1 = child1->children()[0];
3351 3351
3352 std::vector<LayerImpl*> renderSurfaceLayerList; 3352 std::vector<LayerImpl*> renderSurfaceLayerList;
3353 int dummyMaxTextureSize = 512; 3353 int dummyMaxTextureSize = 512;
3354 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3354 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3355 3355
3356 // Sanity check the scenario we just created. 3356 // Sanity check the scenario we just created.
3357 ASSERT_TRUE(child1); 3357 ASSERT_TRUE(child1);
3358 ASSERT_TRUE(child2); 3358 ASSERT_TRUE(child2);
3359 ASSERT_TRUE(grandChild1); 3359 ASSERT_TRUE(grandChild1);
3360 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3360 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3361 ASSERT_EQ(4u, root->renderSurface()->layerList().size()); 3361 ASSERT_EQ(4u, root->renderSurface()->layerList().size());
3362 ASSERT_EQ(1, root->renderSurface()->layerList()[0]->id()); // root layer 3362 ASSERT_EQ(1, root->renderSurface()->layerList()[0]->id()); // root layer
3363 ASSERT_EQ(2, root->renderSurface()->layerList()[1]->id()); // child1 3363 ASSERT_EQ(2, root->renderSurface()->layerList()[1]->id()); // child1
3364 ASSERT_EQ(4, root->renderSurface()->layerList()[2]->id()); // grandChild1 3364 ASSERT_EQ(4, root->renderSurface()->layerList()[2]->id()); // grandChild1
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
3450 root->addChild(child1.Pass()); 3450 root->addChild(child1.Pass());
3451 root->addChild(child2.Pass()); 3451 root->addChild(child2.Pass());
3452 } 3452 }
3453 3453
3454 LayerImpl* child1 = root->children()[0]; 3454 LayerImpl* child1 = root->children()[0];
3455 LayerImpl* child2 = root->children()[1]; 3455 LayerImpl* child2 = root->children()[1];
3456 LayerImpl* grandChild1 = child1->children()[0]; 3456 LayerImpl* grandChild1 = child1->children()[0];
3457 3457
3458 std::vector<LayerImpl*> renderSurfaceLayerList; 3458 std::vector<LayerImpl*> renderSurfaceLayerList;
3459 int dummyMaxTextureSize = 512; 3459 int dummyMaxTextureSize = 512;
3460 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3460 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3461 3461
3462 // Sanity check the scenario we just created. 3462 // Sanity check the scenario we just created.
3463 ASSERT_TRUE(child1); 3463 ASSERT_TRUE(child1);
3464 ASSERT_TRUE(child2); 3464 ASSERT_TRUE(child2);
3465 ASSERT_TRUE(grandChild1); 3465 ASSERT_TRUE(grandChild1);
3466 ASSERT_TRUE(child1->renderSurface()); 3466 ASSERT_TRUE(child1->renderSurface());
3467 ASSERT_TRUE(child2->renderSurface()); 3467 ASSERT_TRUE(child2->renderSurface());
3468 ASSERT_TRUE(grandChild1->renderSurface()); 3468 ASSERT_TRUE(grandChild1->renderSurface());
3469 ASSERT_EQ(4u, renderSurfaceLayerList.size()); 3469 ASSERT_EQ(4u, renderSurfaceLayerList.size());
3470 ASSERT_EQ(3u, root->renderSurface()->layerList().size()); // The root surfac e has the root layer, and child1's and child2's renderSurfaces. 3470 ASSERT_EQ(3u, root->renderSurface()->layerList().size()); // The root surfac e has the root layer, and child1's and child2's renderSurfaces.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
3534 gfx::Transform identityMatrix; 3534 gfx::Transform identityMatrix;
3535 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50)); 3535 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50));
3536 gfx::PointF anchor(0, 0); 3536 gfx::PointF anchor(0, 0);
3537 gfx::PointF position(0, 0); 3537 gfx::PointF position(0, 0);
3538 gfx::Size bounds(100, 100); 3538 gfx::Size bounds(100, 100);
3539 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false); 3539 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false);
3540 root->setDrawsContent(true); 3540 root->setDrawsContent(true);
3541 3541
3542 std::vector<LayerImpl*> renderSurfaceLayerList; 3542 std::vector<LayerImpl*> renderSurfaceLayerList;
3543 int dummyMaxTextureSize = 512; 3543 int dummyMaxTextureSize = 512;
3544 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3544 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3545 3545
3546 // Sanity check the scenario we just created. 3546 // Sanity check the scenario we just created.
3547 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3547 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3548 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3548 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3549 3549
3550 // Hit checking for any point should return a null pointer for a layer witho ut any touch event handler regions. 3550 // Hit checking for any point should return a null pointer for a layer witho ut any touch event handler regions.
3551 gfx::Point testPoint(11, 11); 3551 gfx::Point testPoint(11, 11);
3552 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList); 3552 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList);
3553 EXPECT_FALSE(resultLayer); 3553 EXPECT_FALSE(resultLayer);
3554 3554
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3598 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50)); 3598 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50));
3599 gfx::PointF anchor(0, 0); 3599 gfx::PointF anchor(0, 0);
3600 gfx::PointF position(0, 0); 3600 gfx::PointF position(0, 0);
3601 gfx::Size bounds(100, 100); 3601 gfx::Size bounds(100, 100);
3602 setLayerPropertiesForTesting(root.get(), uninvertibleTransform, identityMatr ix, anchor, position, bounds, false); 3602 setLayerPropertiesForTesting(root.get(), uninvertibleTransform, identityMatr ix, anchor, position, bounds, false);
3603 root->setDrawsContent(true); 3603 root->setDrawsContent(true);
3604 root->setTouchEventHandlerRegion(touchHandlerRegion); 3604 root->setTouchEventHandlerRegion(touchHandlerRegion);
3605 3605
3606 std::vector<LayerImpl*> renderSurfaceLayerList; 3606 std::vector<LayerImpl*> renderSurfaceLayerList;
3607 int dummyMaxTextureSize = 512; 3607 int dummyMaxTextureSize = 512;
3608 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3608 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3609 3609
3610 // Sanity check the scenario we just created. 3610 // Sanity check the scenario we just created.
3611 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3611 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3612 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3612 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3613 ASSERT_FALSE(root->screenSpaceTransform().IsInvertible()); 3613 ASSERT_FALSE(root->screenSpaceTransform().IsInvertible());
3614 3614
3615 // Hit checking any point should not hit the touch handler region on the lay er. If the invertible matrix is 3615 // Hit checking any point should not hit the touch handler region on the lay er. If the invertible matrix is
3616 // accidentally ignored and treated like an identity, then the hit testing w ill 3616 // accidentally ignored and treated like an identity, then the hit testing w ill
3617 // incorrectly hit the layer when it shouldn't. 3617 // incorrectly hit the layer when it shouldn't.
3618 gfx::Point testPoint(1, 1); 3618 gfx::Point testPoint(1, 1);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3652 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50)); 3652 Region touchHandlerRegion(gfx::Rect(10, 10, 50, 50));
3653 gfx::PointF anchor(0, 0); 3653 gfx::PointF anchor(0, 0);
3654 gfx::PointF position(50, 50); // this layer is positioned, and hit testing s hould correctly know where the layer is located. 3654 gfx::PointF position(50, 50); // this layer is positioned, and hit testing s hould correctly know where the layer is located.
3655 gfx::Size bounds(100, 100); 3655 gfx::Size bounds(100, 100);
3656 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false); 3656 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, anc hor, position, bounds, false);
3657 root->setDrawsContent(true); 3657 root->setDrawsContent(true);
3658 root->setTouchEventHandlerRegion(touchHandlerRegion); 3658 root->setTouchEventHandlerRegion(touchHandlerRegion);
3659 3659
3660 std::vector<LayerImpl*> renderSurfaceLayerList; 3660 std::vector<LayerImpl*> renderSurfaceLayerList;
3661 int dummyMaxTextureSize = 512; 3661 int dummyMaxTextureSize = 512;
3662 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3662 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3663 3663
3664 // Sanity check the scenario we just created. 3664 // Sanity check the scenario we just created.
3665 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3665 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3666 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3666 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3667 3667
3668 // Hit checking for a point outside the layer should return a null pointer. 3668 // Hit checking for a point outside the layer should return a null pointer.
3669 gfx::Point testPoint(49, 49); 3669 gfx::Point testPoint(49, 49);
3670 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList); 3670 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList);
3671 EXPECT_FALSE(resultLayer); 3671 EXPECT_FALSE(resultLayer);
3672 3672
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
3722 testLayer->setContentBounds(gfx::Size(100, 100)); 3722 testLayer->setContentBounds(gfx::Size(100, 100));
3723 testLayer->setContentsScale(2, 2); 3723 testLayer->setContentsScale(2, 2);
3724 3724
3725 testLayer->setDrawsContent(true); 3725 testLayer->setDrawsContent(true);
3726 testLayer->setTouchEventHandlerRegion(touchHandlerRegion); 3726 testLayer->setTouchEventHandlerRegion(touchHandlerRegion);
3727 root->addChild(testLayer.Pass()); 3727 root->addChild(testLayer.Pass());
3728 } 3728 }
3729 3729
3730 std::vector<LayerImpl*> renderSurfaceLayerList; 3730 std::vector<LayerImpl*> renderSurfaceLayerList;
3731 int dummyMaxTextureSize = 512; 3731 int dummyMaxTextureSize = 512;
3732 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3732 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3733 3733
3734 // Sanity check the scenario we just created. 3734 // Sanity check the scenario we just created.
3735 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25. 3735 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25.
3736 LayerImpl* testLayer = root->children()[0]; 3736 LayerImpl* testLayer = root->children()[0];
3737 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(), gfx::Size(100, 100)), testLayer->visi bleContentRect()); 3737 EXPECT_RECT_EQ(gfx::Rect(gfx::Point(), gfx::Size(100, 100)), testLayer->visi bleContentRect());
3738 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3738 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3739 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3739 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3740 3740
3741 // Hit checking for a point outside the layer should return a null pointer ( the root layer does not draw content, so it will not be tested either). 3741 // Hit checking for a point outside the layer should return a null pointer ( the root layer does not draw content, so it will not be tested either).
3742 gfx::Point testPoint(76, 76); 3742 gfx::Point testPoint(76, 76);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
3796 } 3796 }
3797 3797
3798 std::vector<LayerImpl*> renderSurfaceLayerList; 3798 std::vector<LayerImpl*> renderSurfaceLayerList;
3799 int dummyMaxTextureSize = 512; 3799 int dummyMaxTextureSize = 512;
3800 float deviceScaleFactor = 3.0f; 3800 float deviceScaleFactor = 3.0f;
3801 float pageScaleFactor = 5.0f; 3801 float pageScaleFactor = 5.0f;
3802 gfx::Transform pageScaleTransform; 3802 gfx::Transform pageScaleTransform;
3803 pageScaleTransform.Scale(pageScaleFactor, pageScaleFactor); 3803 pageScaleTransform.Scale(pageScaleFactor, pageScaleFactor);
3804 root->setImplTransform(pageScaleTransform); // Applying the pageScaleFactor through implTransform. 3804 root->setImplTransform(pageScaleTransform); // Applying the pageScaleFactor through implTransform.
3805 gfx::Size scaledBoundsForRoot = gfx::ToCeiledSize(gfx::ScaleSize(root->bound s(), deviceScaleFactor * pageScaleFactor)); 3805 gfx::Size scaledBoundsForRoot = gfx::ToCeiledSize(gfx::ScaleSize(root->bound s(), deviceScaleFactor * pageScaleFactor));
3806 LayerTreeHostCommon::calculateDrawTransforms(root.get(), scaledBoundsForRoot , deviceScaleFactor, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3806 LayerTreeHostCommon::calculateDrawProperties(root.get(), scaledBoundsForRoot , deviceScaleFactor, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3807 3807
3808 // Sanity check the scenario we just created. 3808 // Sanity check the scenario we just created.
3809 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25. 3809 // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25.
3810 LayerImpl* testLayer = root->children()[0]; 3810 LayerImpl* testLayer = root->children()[0];
3811 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3811 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3812 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3812 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3813 3813
3814 // Check whether the child layer fits into the root after scaled. 3814 // Check whether the child layer fits into the root after scaled.
3815 EXPECT_RECT_EQ(gfx::Rect(testLayer->contentBounds()), testLayer->visibleCont entRect());; 3815 EXPECT_RECT_EQ(gfx::Rect(testLayer->contentBounds()), testLayer->visibleCont entRect());;
3816 3816
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3878 bounds = gfx::Size(300, 300); 3878 bounds = gfx::Size(300, 300);
3879 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false); 3879 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix , anchor, position, bounds, false);
3880 child->setDrawsContent(true); 3880 child->setDrawsContent(true);
3881 child->setTouchEventHandlerRegion(touchHandlerRegion); 3881 child->setTouchEventHandlerRegion(touchHandlerRegion);
3882 clippingLayer->addChild(child.Pass()); 3882 clippingLayer->addChild(child.Pass());
3883 root->addChild(clippingLayer.Pass()); 3883 root->addChild(clippingLayer.Pass());
3884 } 3884 }
3885 3885
3886 std::vector<LayerImpl*> renderSurfaceLayerList; 3886 std::vector<LayerImpl*> renderSurfaceLayerList;
3887 int dummyMaxTextureSize = 512; 3887 int dummyMaxTextureSize = 512;
3888 LayerTreeHostCommon::calculateDrawTransforms(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList); 3888 LayerTreeHostCommon::calculateDrawProperties(root.get(), root->bounds(), 1, 1, 0, dummyMaxTextureSize, renderSurfaceLayerList);
3889 3889
3890 // Sanity check the scenario we just created. 3890 // Sanity check the scenario we just created.
3891 ASSERT_EQ(1u, renderSurfaceLayerList.size()); 3891 ASSERT_EQ(1u, renderSurfaceLayerList.size());
3892 ASSERT_EQ(1u, root->renderSurface()->layerList().size()); 3892 ASSERT_EQ(1u, root->renderSurface()->layerList().size());
3893 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id()); 3893 ASSERT_EQ(456, root->renderSurface()->layerList()[0]->id());
3894 3894
3895 // Hit checking for a point outside the layer should return a null pointer. 3895 // Hit checking for a point outside the layer should return a null pointer.
3896 // Despite the child layer being very large, it should be clipped to the roo t layer's bounds. 3896 // Despite the child layer being very large, it should be clipped to the roo t layer's bounds.
3897 gfx::Point testPoint(24, 24); 3897 gfx::Point testPoint(24, 24);
3898 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList); 3898 LayerImpl* resultLayer = LayerTreeHostCommon::findLayerThatIsHitByPointInTou chHandlerRegion(testPoint, renderSurfaceLayerList);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
3961 parent->addChild(child); 3961 parent->addChild(child);
3962 parent->addChild(childEmpty); 3962 parent->addChild(childEmpty);
3963 parent->addChild(childNoScale); 3963 parent->addChild(childNoScale);
3964 3964
3965 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 3965 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
3966 int dummyMaxTextureSize = 512; 3966 int dummyMaxTextureSize = 512;
3967 3967
3968 const double deviceScaleFactor = 2.5; 3968 const double deviceScaleFactor = 2.5;
3969 const double pageScaleFactor = 1; 3969 const double pageScaleFactor = 1;
3970 3970
3971 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 3971 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
3972 3972
3973 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, parent); 3973 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, parent);
3974 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, child); 3974 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, child);
3975 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, childEmpty); 3975 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, childEmpty);
3976 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale); 3976 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale);
3977 3977
3978 EXPECT_EQ(1u, renderSurfaceLayerList.size()); 3978 EXPECT_EQ(1u, renderSurfaceLayerList.size());
3979 3979
3980 // Verify parent transforms 3980 // Verify parent transforms
3981 gfx::Transform expectedParentTransform; 3981 gfx::Transform expectedParentTransform;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
4043 4043
4044 parent->addChild(child); 4044 parent->addChild(child);
4045 parent->addChild(childNoScale); 4045 parent->addChild(childNoScale);
4046 4046
4047 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4047 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4048 int dummyMaxTextureSize = 512; 4048 int dummyMaxTextureSize = 512;
4049 4049
4050 const float deviceScaleFactor = 1.7f; 4050 const float deviceScaleFactor = 1.7f;
4051 const float pageScaleFactor = 1; 4051 const float pageScaleFactor = 1;
4052 4052
4053 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4053 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4054 4054
4055 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, parent); 4055 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, parent);
4056 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, child); 4056 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor, child);
4057 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale); 4057 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale);
4058 4058
4059 EXPECT_EQ(1u, renderSurfaceLayerList.size()); 4059 EXPECT_EQ(1u, renderSurfaceLayerList.size());
4060 4060
4061 // Verify parent transforms 4061 // Verify parent transforms
4062 gfx::Transform expectedParentTransform; 4062 gfx::Transform expectedParentTransform;
4063 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform()); 4063 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform());
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
4148 int dummyMaxTextureSize = 512; 4148 int dummyMaxTextureSize = 512;
4149 4149
4150 double deviceScaleFactor = 2.5; 4150 double deviceScaleFactor = 2.5;
4151 double pageScaleFactor = 1.5; 4151 double pageScaleFactor = 1.5;
4152 4152
4153 // FIXME: Remove this when pageScaleFactor is applied in the compositor. 4153 // FIXME: Remove this when pageScaleFactor is applied in the compositor.
4154 gfx::Transform pageScaleMatrix; 4154 gfx::Transform pageScaleMatrix;
4155 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor); 4155 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor);
4156 parent->setSublayerTransform(pageScaleMatrix); 4156 parent->setSublayerTransform(pageScaleMatrix);
4157 4157
4158 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4158 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4159 4159
4160 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4160 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4161 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale); 4161 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale);
4162 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty); 4162 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty);
4163 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale); 4163 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale);
4164 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, childNoAutoScale); 4164 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, childNoAutoScale);
4165 4165
4166 // The parent is scaled up and shouldn't need to scale during draw. The chil d that can scale its contents should 4166 // The parent is scaled up and shouldn't need to scale during draw. The chil d that can scale its contents should
4167 // also not need to scale during draw. This shouldn't change if the child ha s empty bounds. The other children should. 4167 // also not need to scale during draw. This shouldn't change if the child ha s empty bounds. The other children should.
4168 EXPECT_FLOAT_EQ(1, parent->drawTransform().matrix().getDouble(0, 0)); 4168 EXPECT_FLOAT_EQ(1, parent->drawTransform().matrix().getDouble(0, 0));
4169 EXPECT_FLOAT_EQ(1, parent->drawTransform().matrix().getDouble(1, 1)); 4169 EXPECT_FLOAT_EQ(1, parent->drawTransform().matrix().getDouble(1, 1));
4170 EXPECT_FLOAT_EQ(1, childScale->drawTransform().matrix().getDouble(0, 0)); 4170 EXPECT_FLOAT_EQ(1, childScale->drawTransform().matrix().getDouble(0, 0));
4171 EXPECT_FLOAT_EQ(1, childScale->drawTransform().matrix().getDouble(1, 1)); 4171 EXPECT_FLOAT_EQ(1, childScale->drawTransform().matrix().getDouble(1, 1));
4172 EXPECT_FLOAT_EQ(1, childEmpty->drawTransform().matrix().getDouble(0, 0)); 4172 EXPECT_FLOAT_EQ(1, childEmpty->drawTransform().matrix().getDouble(0, 0));
4173 EXPECT_FLOAT_EQ(1, childEmpty->drawTransform().matrix().getDouble(1, 1)); 4173 EXPECT_FLOAT_EQ(1, childEmpty->drawTransform().matrix().getDouble(1, 1));
4174 EXPECT_FLOAT_EQ(deviceScaleFactor * pageScaleFactor * initialParentScale * i nitialChildScale, childNoScale->drawTransform().matrix().getDouble(0, 0)); 4174 EXPECT_FLOAT_EQ(deviceScaleFactor * pageScaleFactor * initialParentScale * i nitialChildScale, childNoScale->drawTransform().matrix().getDouble(0, 0));
4175 EXPECT_FLOAT_EQ(deviceScaleFactor * pageScaleFactor * initialParentScale * i nitialChildScale, childNoScale->drawTransform().matrix().getDouble(1, 1)); 4175 EXPECT_FLOAT_EQ(deviceScaleFactor * pageScaleFactor * initialParentScale * i nitialChildScale, childNoScale->drawTransform().matrix().getDouble(1, 1));
4176 EXPECT_FLOAT_EQ(initialParentScale * initialChildScale / fixedRasterScale, c hildNoAutoScale->drawTransform().matrix().getDouble(0, 0)); 4176 EXPECT_FLOAT_EQ(initialParentScale * initialChildScale / fixedRasterScale, c hildNoAutoScale->drawTransform().matrix().getDouble(0, 0));
4177 EXPECT_FLOAT_EQ(initialParentScale * initialChildScale / fixedRasterScale, c hildNoAutoScale->drawTransform().matrix().getDouble(1, 1)); 4177 EXPECT_FLOAT_EQ(initialParentScale * initialChildScale / fixedRasterScale, c hildNoAutoScale->drawTransform().matrix().getDouble(1, 1));
4178 4178
4179 // If the transform changes, we expect the contentsScale to remain unchanged . 4179 // If the transform changes, we expect the contentsScale to remain unchanged .
4180 childScale->setTransform(identityMatrix); 4180 childScale->setTransform(identityMatrix);
4181 childEmpty->setTransform(identityMatrix); 4181 childEmpty->setTransform(identityMatrix);
4182 4182
4183 renderSurfaceLayerList.clear(); 4183 renderSurfaceLayerList.clear();
4184 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4184 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4185 4185
4186 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4186 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4187 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale); 4187 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale);
4188 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty); 4188 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty);
4189 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale); 4189 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale);
4190 4190
4191 // But if the deviceScaleFactor or pageScaleFactor changes, then it should b e updated, but using the initial transform. 4191 // But if the deviceScaleFactor or pageScaleFactor changes, then it should b e updated, but using the initial transform.
4192 deviceScaleFactor = 2.25; 4192 deviceScaleFactor = 2.25;
4193 pageScaleFactor = 1.25; 4193 pageScaleFactor = 1.25;
4194 4194
4195 // FIXME: Remove this when pageScaleFactor is applied in the compositor. 4195 // FIXME: Remove this when pageScaleFactor is applied in the compositor.
4196 pageScaleMatrix = identityMatrix; 4196 pageScaleMatrix = identityMatrix;
4197 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor); 4197 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor);
4198 parent->setSublayerTransform(pageScaleMatrix); 4198 parent->setSublayerTransform(pageScaleMatrix);
4199 4199
4200 renderSurfaceLayerList.clear(); 4200 renderSurfaceLayerList.clear();
4201 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4201 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4202 4202
4203 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4203 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4204 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale); 4204 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childScale);
4205 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty); 4205 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, childEmpty);
4206 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale); 4206 EXPECT_CONTENTS_SCALE_EQ(1, childNoScale);
4207 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, childNoAutoScale); 4207 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, childNoAutoScale);
4208 } 4208 }
4209 4209
4210 TEST(LayerTreeHostCommonTest, verifySmallContentsScale) 4210 TEST(LayerTreeHostCommonTest, verifySmallContentsScale)
4211 { 4211 {
(...skipping 24 matching lines...) Expand all
4236 int dummyMaxTextureSize = 512; 4236 int dummyMaxTextureSize = 512;
4237 4237
4238 double deviceScaleFactor = 2.5; 4238 double deviceScaleFactor = 2.5;
4239 double pageScaleFactor = 0.01; 4239 double pageScaleFactor = 0.01;
4240 4240
4241 // FIXME: Remove this when pageScaleFactor is applied in the compositor. 4241 // FIXME: Remove this when pageScaleFactor is applied in the compositor.
4242 gfx::Transform pageScaleMatrix; 4242 gfx::Transform pageScaleMatrix;
4243 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor); 4243 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor);
4244 parent->setSublayerTransform(pageScaleMatrix); 4244 parent->setSublayerTransform(pageScaleMatrix);
4245 4245
4246 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4246 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4247 4247
4248 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4248 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4249 // The child's scale is < 1, so we should not save and use that scale factor . 4249 // The child's scale is < 1, so we should not save and use that scale factor .
4250 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * 1, childScale ); 4250 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * 1, childScale );
4251 4251
4252 // When chilld's total scale becomes >= 1, we should save and use that scale factor. 4252 // When chilld's total scale becomes >= 1, we should save and use that scale factor.
4253 childScaleMatrix.MakeIdentity(); 4253 childScaleMatrix.MakeIdentity();
4254 const double finalChildScale = 0.75; 4254 const double finalChildScale = 0.75;
4255 childScaleMatrix.Scale(finalChildScale, finalChildScale); 4255 childScaleMatrix.Scale(finalChildScale, finalChildScale);
4256 childScale->setTransform(childScaleMatrix); 4256 childScale->setTransform(childScaleMatrix);
4257 4257
4258 renderSurfaceLayerList.clear(); 4258 renderSurfaceLayerList.clear();
4259 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4259 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4260 4260
4261 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4261 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4262 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * finalChildScale, childScale); 4262 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * finalChildScale, childScale);
4263 } 4263 }
4264 4264
4265 TEST(LayerTreeHostCommonTest, verifyContentsScaleForSurfaces) 4265 TEST(LayerTreeHostCommonTest, verifyContentsScaleForSurfaces)
4266 { 4266 {
4267 MockContentLayerClient delegate; 4267 MockContentLayerClient delegate;
4268 gfx::Transform identityMatrix; 4268 gfx::Transform identityMatrix;
4269 4269
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
4333 int dummyMaxTextureSize = 512; 4333 int dummyMaxTextureSize = 512;
4334 4334
4335 double deviceScaleFactor = 5; 4335 double deviceScaleFactor = 5;
4336 double pageScaleFactor = 7; 4336 double pageScaleFactor = 7;
4337 4337
4338 // FIXME: Remove this when pageScaleFactor is applied in the compositor. 4338 // FIXME: Remove this when pageScaleFactor is applied in the compositor.
4339 gfx::Transform pageScaleMatrix; 4339 gfx::Transform pageScaleMatrix;
4340 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor); 4340 pageScaleMatrix.Scale(pageScaleFactor, pageScaleFactor);
4341 parent->setSublayerTransform(pageScaleMatrix); 4341 parent->setSublayerTransform(pageScaleMatrix);
4342 4342
4343 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList ); 4343 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, pageScaleFactor, dummyMaxTextureSize, renderSurfaceLayerList );
4344 4344
4345 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent); 4345 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * initialParentScale, parent);
4346 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, surfaceScale); 4346 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale, surfaceScale);
4347 EXPECT_CONTENTS_SCALE_EQ(1, surfaceNoScale); 4347 EXPECT_CONTENTS_SCALE_EQ(1, surfaceNoScale);
4348 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, surfaceNoAutoScale); 4348 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * fixedRasterSc ale, surfaceNoAutoScale);
4349 4349
4350 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale * initialChildScale, surfaceScaleChildScale); 4350 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale * initialChildScale, surfaceScaleChildScale);
4351 EXPECT_CONTENTS_SCALE_EQ(1, surfaceScaleChildNoScale); 4351 EXPECT_CONTENTS_SCALE_EQ(1, surfaceScaleChildNoScale);
4352 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale * initialChildScale, surfaceNoScaleChildScale); 4352 EXPECT_CONTENTS_SCALE_EQ(deviceScaleFactor * pageScaleFactor * initialParent Scale * initialChildScale * initialChildScale, surfaceNoScaleChildScale);
4353 EXPECT_CONTENTS_SCALE_EQ(1, surfaceNoScaleChildNoScale); 4353 EXPECT_CONTENTS_SCALE_EQ(1, surfaceNoScaleChildNoScale);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
4427 setLayerPropertiesForTesting(childScale.get(), childScaleMatrix, identityMat rix, gfx::PointF(0, 0), gfx::PointF(2, 2), gfx::Size(10, 10), true); 4427 setLayerPropertiesForTesting(childScale.get(), childScaleMatrix, identityMat rix, gfx::PointF(0, 0), gfx::PointF(2, 2), gfx::Size(10, 10), true);
4428 4428
4429 parent->addChild(childScale); 4429 parent->addChild(childScale);
4430 4430
4431 // Now put an animating transform on child. 4431 // Now put an animating transform on child.
4432 int animationId = addAnimatedTransformToController(*childScale->layerAnimati onController(), 10, 30, 0); 4432 int animationId = addAnimatedTransformToController(*childScale->layerAnimati onController(), 10, 30, 0);
4433 4433
4434 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4434 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4435 int dummyMaxTextureSize = 512; 4435 int dummyMaxTextureSize = 512;
4436 4436
4437 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4437 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4438 4438
4439 EXPECT_CONTENTS_SCALE_EQ(initialParentScale, parent); 4439 EXPECT_CONTENTS_SCALE_EQ(initialParentScale, parent);
4440 // The layers with animating transforms should not compute a contentsScale o ther than 1 until they finish animating. 4440 // The layers with animating transforms should not compute a contentsScale o ther than 1 until they finish animating.
4441 EXPECT_CONTENTS_SCALE_EQ(1, childScale); 4441 EXPECT_CONTENTS_SCALE_EQ(1, childScale);
4442 4442
4443 // Remove the animation, now it can save a raster scale. 4443 // Remove the animation, now it can save a raster scale.
4444 childScale->layerAnimationController()->removeAnimation(animationId); 4444 childScale->layerAnimationController()->removeAnimation(animationId);
4445 4445
4446 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4446 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), 1, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4447 4447
4448 EXPECT_CONTENTS_SCALE_EQ(initialParentScale, parent); 4448 EXPECT_CONTENTS_SCALE_EQ(initialParentScale, parent);
4449 // The layers with animating transforms should not compute a contentsScale o ther than 1 until they finish animating. 4449 // The layers with animating transforms should not compute a contentsScale o ther than 1 until they finish animating.
4450 EXPECT_CONTENTS_SCALE_EQ(initialParentScale * initialChildScale, childScale) ; 4450 EXPECT_CONTENTS_SCALE_EQ(initialParentScale * initialChildScale, childScale) ;
4451 } 4451 }
4452 4452
4453 4453
4454 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceTransformsInHighDPI) 4454 TEST(LayerTreeHostCommonTest, verifyRenderSurfaceTransformsInHighDPI)
4455 { 4455 {
4456 MockContentLayerClient delegate; 4456 MockContentLayerClient delegate;
(...skipping 21 matching lines...) Expand all
4478 4478
4479 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4479 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4480 int dummyMaxTextureSize = 512; 4480 int dummyMaxTextureSize = 512;
4481 4481
4482 const double deviceScaleFactor = 1.5; 4482 const double deviceScaleFactor = 1.5;
4483 parent->setContentsScale(deviceScaleFactor); 4483 parent->setContentsScale(deviceScaleFactor);
4484 child->setContentsScale(deviceScaleFactor); 4484 child->setContentsScale(deviceScaleFactor);
4485 duplicateChildNonOwner->setContentsScale(deviceScaleFactor); 4485 duplicateChildNonOwner->setContentsScale(deviceScaleFactor);
4486 replica->setContentsScale(deviceScaleFactor); 4486 replica->setContentsScale(deviceScaleFactor);
4487 4487
4488 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4488 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4489 4489
4490 // We should have two render surfaces. The root's render surface and child's 4490 // We should have two render surfaces. The root's render surface and child's
4491 // render surface (it needs one because it has a replica layer). 4491 // render surface (it needs one because it has a replica layer).
4492 EXPECT_EQ(2u, renderSurfaceLayerList.size()); 4492 EXPECT_EQ(2u, renderSurfaceLayerList.size());
4493 4493
4494 gfx::Transform expectedParentTransform; 4494 gfx::Transform expectedParentTransform;
4495 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform()); 4495 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->screenSpace Transform());
4496 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->drawTransfo rm()); 4496 EXPECT_TRANSFORMATION_MATRIX_EQ(expectedParentTransform, parent->drawTransfo rm());
4497 4497
4498 gfx::Transform expectedDrawTransform; 4498 gfx::Transform expectedDrawTransform;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
4561 4561
4562 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList; 4562 std::vector<scoped_refptr<Layer> > renderSurfaceLayerList;
4563 int dummyMaxTextureSize = 512; 4563 int dummyMaxTextureSize = 512;
4564 4564
4565 const float deviceScaleFactor = 1.7f; 4565 const float deviceScaleFactor = 1.7f;
4566 parent->setContentsScale(deviceScaleFactor); 4566 parent->setContentsScale(deviceScaleFactor);
4567 child->setContentsScale(deviceScaleFactor); 4567 child->setContentsScale(deviceScaleFactor);
4568 duplicateChildNonOwner->setContentsScale(deviceScaleFactor); 4568 duplicateChildNonOwner->setContentsScale(deviceScaleFactor);
4569 replica->setContentsScale(deviceScaleFactor); 4569 replica->setContentsScale(deviceScaleFactor);
4570 4570
4571 LayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList); 4571 LayerTreeHostCommon::calculateDrawProperties(parent.get(), parent->bounds(), deviceScaleFactor, 1, dummyMaxTextureSize, renderSurfaceLayerList);
4572 4572
4573 // We should have two render surfaces. The root's render surface and child's 4573 // We should have two render surfaces. The root's render surface and child's
4574 // render surface (it needs one because it has a replica layer). 4574 // render surface (it needs one because it has a replica layer).
4575 EXPECT_EQ(2u, renderSurfaceLayerList.size()); 4575 EXPECT_EQ(2u, renderSurfaceLayerList.size());
4576 4576
4577 gfx::Transform identityTransform; 4577 gfx::Transform identityTransform;
4578 4578
4579 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->screenSpaceTransf orm()); 4579 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->screenSpaceTransf orm());
4580 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->drawTransform()); 4580 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, parent->drawTransform());
4581 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, child->drawTransform()); 4581 EXPECT_TRANSFORMATION_MATRIX_EQ(identityTransform, child->drawTransform());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
4628 4628
4629 const gfx::Transform identityMatrix; 4629 const gfx::Transform identityMatrix;
4630 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(), gfx::PointF(), gfx::Size(100, 100), false); 4630 setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, gfx ::PointF(), gfx::PointF(), gfx::Size(100, 100), false);
4631 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 4631 setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, gf x::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
4632 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false); 4632 setLayerPropertiesForTesting(grandChild.get(), identityMatrix, identityMatri x, gfx::PointF(), gfx::PointF(), gfx::Size(10, 10), false);
4633 4633
4634 root->addChild(child); 4634 root->addChild(child);
4635 child->addChild(grandChild); 4635 child->addChild(grandChild);
4636 child->setOpacity(0.5f); 4636 child->setOpacity(0.5f);
4637 4637
4638 executeCalculateDrawTransformsAndVisibility(root.get()); 4638 executeCalculateDrawProperties(root.get());
4639 4639
4640 EXPECT_FALSE(child->renderSurface()); 4640 EXPECT_FALSE(child->renderSurface());
4641 } 4641 }
4642 4642
4643 } // namespace 4643 } // namespace
4644 } // namespace cc 4644 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698