| OLD | NEW |
| 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/trees/layer_tree_host_common.h" | 5 #include "cc/trees/layer_tree_host_common.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "cc/animation/keyframed_animation_curve.h" | 10 #include "cc/animation/keyframed_animation_curve.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 // |child|. | 173 // |child|. |
| 174 EXPECT_FALSE(child->draw_transform().IsIdentity()); | 174 EXPECT_FALSE(child->draw_transform().IsIdentity()); |
| 175 EXPECT_FALSE(grand_child->draw_transform().IsIdentity()); | 175 EXPECT_FALSE(grand_child->draw_transform().IsIdentity()); |
| 176 } | 176 } |
| 177 | 177 |
| 178 TEST_F(LayerTreeHostCommonTest, TransformsForSingleLayer) { | 178 TEST_F(LayerTreeHostCommonTest, TransformsForSingleLayer) { |
| 179 gfx::Transform identity_matrix; | 179 gfx::Transform identity_matrix; |
| 180 scoped_refptr<Layer> layer = Layer::Create(layer_settings()); | 180 scoped_refptr<Layer> layer = Layer::Create(layer_settings()); |
| 181 | 181 |
| 182 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 182 scoped_refptr<Layer> root = Layer::Create(layer_settings()); |
| 183 SetLayerPropertiesForTesting(root.get(), | 183 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
| 184 identity_matrix, | 184 gfx::PointF(), gfx::Size(1, 2), true, false); |
| 185 gfx::Point3F(), | |
| 186 gfx::PointF(), | |
| 187 gfx::Size(1, 2), | |
| 188 true, | |
| 189 false); | |
| 190 root->AddChild(layer); | 185 root->AddChild(layer); |
| 191 | 186 |
| 192 host()->SetRootLayer(root); | 187 host()->SetRootLayer(root); |
| 193 | 188 |
| 189 TransformTree& tree = host()->property_trees()->transform_tree; |
| 190 |
| 194 // Case 2: Setting the bounds of the layer should not affect either the draw | 191 // Case 2: Setting the bounds of the layer should not affect either the draw |
| 195 // transform or the screenspace transform. | 192 // transform or the screenspace transform. |
| 196 gfx::Transform translation_to_center; | 193 gfx::Transform translation_to_center; |
| 197 translation_to_center.Translate(5.0, 6.0); | 194 translation_to_center.Translate(5.0, 6.0); |
| 198 SetLayerPropertiesForTesting(layer.get(), | 195 SetLayerPropertiesForTesting(layer.get(), identity_matrix, gfx::Point3F(), |
| 199 identity_matrix, | 196 gfx::PointF(), gfx::Size(10, 12), true, false); |
| 200 gfx::Point3F(), | |
| 201 gfx::PointF(), | |
| 202 gfx::Size(10, 12), | |
| 203 true, | |
| 204 false); | |
| 205 ExecuteCalculateDrawProperties(root.get()); | 197 ExecuteCalculateDrawProperties(root.get()); |
| 206 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, layer->draw_transform()); | 198 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 207 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, | 199 identity_matrix, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 208 layer->screen_space_transform()); | 200 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 201 identity_matrix, |
| 202 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 209 | 203 |
| 210 // Case 3: The anchor point by itself (without a layer transform) should have | 204 // Case 3: The anchor point by itself (without a layer transform) should have |
| 211 // no effect on the transforms. | 205 // no effect on the transforms. |
| 212 SetLayerPropertiesForTesting(layer.get(), | 206 SetLayerPropertiesForTesting(layer.get(), identity_matrix, |
| 213 identity_matrix, | 207 gfx::Point3F(2.5f, 3.0f, 0.f), gfx::PointF(), |
| 214 gfx::Point3F(2.5f, 3.0f, 0.f), | 208 gfx::Size(10, 12), true, false); |
| 215 gfx::PointF(), | |
| 216 gfx::Size(10, 12), | |
| 217 true, | |
| 218 false); | |
| 219 ExecuteCalculateDrawProperties(root.get()); | 209 ExecuteCalculateDrawProperties(root.get()); |
| 220 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, layer->draw_transform()); | 210 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 221 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, | 211 identity_matrix, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 222 layer->screen_space_transform()); | 212 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 213 identity_matrix, |
| 214 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 223 | 215 |
| 224 // Case 4: A change in actual position affects both the draw transform and | 216 // Case 4: A change in actual position affects both the draw transform and |
| 225 // screen space transform. | 217 // screen space transform. |
| 226 gfx::Transform position_transform; | 218 gfx::Transform position_transform; |
| 227 position_transform.Translate(0.f, 1.2f); | 219 position_transform.Translate(0.f, 1.2f); |
| 228 SetLayerPropertiesForTesting(layer.get(), | 220 SetLayerPropertiesForTesting( |
| 229 identity_matrix, | 221 layer.get(), identity_matrix, gfx::Point3F(2.5f, 3.0f, 0.f), |
| 230 gfx::Point3F(2.5f, 3.0f, 0.f), | 222 gfx::PointF(0.f, 1.2f), gfx::Size(10, 12), true, false); |
| 231 gfx::PointF(0.f, 1.2f), | |
| 232 gfx::Size(10, 12), | |
| 233 true, | |
| 234 false); | |
| 235 ExecuteCalculateDrawProperties(root.get()); | 223 ExecuteCalculateDrawProperties(root.get()); |
| 236 EXPECT_TRANSFORMATION_MATRIX_EQ(position_transform, layer->draw_transform()); | 224 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 237 EXPECT_TRANSFORMATION_MATRIX_EQ(position_transform, | 225 position_transform, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 238 layer->screen_space_transform()); | 226 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 227 position_transform, |
| 228 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 239 | 229 |
| 240 // Case 5: In the correct sequence of transforms, the layer transform should | 230 // Case 5: In the correct sequence of transforms, the layer transform should |
| 241 // pre-multiply the translation_to_center. This is easily tested by using a | 231 // pre-multiply the translation_to_center. This is easily tested by using a |
| 242 // scale transform, because scale and translation are not commutative. | 232 // scale transform, because scale and translation are not commutative. |
| 243 gfx::Transform layer_transform; | 233 gfx::Transform layer_transform; |
| 244 layer_transform.Scale3d(2.0, 2.0, 1.0); | 234 layer_transform.Scale3d(2.0, 2.0, 1.0); |
| 245 SetLayerPropertiesForTesting(layer.get(), | 235 SetLayerPropertiesForTesting(layer.get(), layer_transform, gfx::Point3F(), |
| 246 layer_transform, | 236 gfx::PointF(), gfx::Size(10, 12), true, false); |
| 247 gfx::Point3F(), | |
| 248 gfx::PointF(), | |
| 249 gfx::Size(10, 12), | |
| 250 true, | |
| 251 false); | |
| 252 ExecuteCalculateDrawProperties(root.get()); | 237 ExecuteCalculateDrawProperties(root.get()); |
| 253 EXPECT_TRANSFORMATION_MATRIX_EQ(layer_transform, layer->draw_transform()); | 238 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 254 EXPECT_TRANSFORMATION_MATRIX_EQ(layer_transform, | 239 layer_transform, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 255 layer->screen_space_transform()); | 240 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 241 layer_transform, |
| 242 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 256 | 243 |
| 257 // Case 6: The layer transform should occur with respect to the anchor point. | 244 // Case 6: The layer transform should occur with respect to the anchor point. |
| 258 gfx::Transform translation_to_anchor; | 245 gfx::Transform translation_to_anchor; |
| 259 translation_to_anchor.Translate(5.0, 0.0); | 246 translation_to_anchor.Translate(5.0, 0.0); |
| 260 gfx::Transform expected_result = | 247 gfx::Transform expected_result = |
| 261 translation_to_anchor * layer_transform * Inverse(translation_to_anchor); | 248 translation_to_anchor * layer_transform * Inverse(translation_to_anchor); |
| 262 SetLayerPropertiesForTesting(layer.get(), | 249 SetLayerPropertiesForTesting(layer.get(), layer_transform, |
| 263 layer_transform, | 250 gfx::Point3F(5.0f, 0.f, 0.f), gfx::PointF(), |
| 264 gfx::Point3F(5.0f, 0.f, 0.f), | 251 gfx::Size(10, 12), true, false); |
| 265 gfx::PointF(), | |
| 266 gfx::Size(10, 12), | |
| 267 true, | |
| 268 false); | |
| 269 ExecuteCalculateDrawProperties(root.get()); | 252 ExecuteCalculateDrawProperties(root.get()); |
| 270 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_result, layer->draw_transform()); | 253 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 271 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_result, | 254 expected_result, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 272 layer->screen_space_transform()); | 255 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 256 expected_result, |
| 257 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 273 | 258 |
| 274 // Case 7: Verify that position pre-multiplies the layer transform. The | 259 // Case 7: Verify that position pre-multiplies the layer transform. The |
| 275 // current implementation of CalculateDrawProperties does this implicitly, but | 260 // current implementation of CalculateDrawProperties does this implicitly, but |
| 276 // it is still worth testing to detect accidental regressions. | 261 // it is still worth testing to detect accidental regressions. |
| 277 expected_result = position_transform * translation_to_anchor * | 262 expected_result = position_transform * translation_to_anchor * |
| 278 layer_transform * Inverse(translation_to_anchor); | 263 layer_transform * Inverse(translation_to_anchor); |
| 279 SetLayerPropertiesForTesting(layer.get(), | 264 SetLayerPropertiesForTesting( |
| 280 layer_transform, | 265 layer.get(), layer_transform, gfx::Point3F(5.0f, 0.f, 0.f), |
| 281 gfx::Point3F(5.0f, 0.f, 0.f), | 266 gfx::PointF(0.f, 1.2f), gfx::Size(10, 12), true, false); |
| 282 gfx::PointF(0.f, 1.2f), | |
| 283 gfx::Size(10, 12), | |
| 284 true, | |
| 285 false); | |
| 286 ExecuteCalculateDrawProperties(root.get()); | 267 ExecuteCalculateDrawProperties(root.get()); |
| 287 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_result, layer->draw_transform()); | 268 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 288 EXPECT_TRANSFORMATION_MATRIX_EQ(expected_result, | 269 expected_result, DrawTransformFromPropertyTrees(layer.get(), tree)); |
| 289 layer->screen_space_transform()); | 270 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 271 expected_result, |
| 272 ScreenSpaceTransformFromPropertyTrees(layer.get(), tree)); |
| 290 } | 273 } |
| 291 | 274 |
| 292 TEST_F(LayerTreeHostCommonTest, TransformsAboutScrollOffset) { | 275 TEST_F(LayerTreeHostCommonTest, TransformsAboutScrollOffset) { |
| 293 const gfx::ScrollOffset kScrollOffset(50, 100); | 276 const gfx::ScrollOffset kScrollOffset(50, 100); |
| 294 const gfx::Vector2dF kScrollDelta(2.34f, 5.67f); | 277 const gfx::Vector2dF kScrollDelta(2.34f, 5.67f); |
| 295 const gfx::Vector2d kMaxScrollOffset(200, 200); | 278 const gfx::Vector2d kMaxScrollOffset(200, 200); |
| 296 const gfx::PointF kScrollLayerPosition(-kScrollOffset.x(), | 279 const gfx::PointF kScrollLayerPosition(-kScrollOffset.x(), |
| 297 -kScrollOffset.y()); | 280 -kScrollOffset.y()); |
| 298 const float kPageScale = 0.888f; | 281 const float kPageScale = 0.888f; |
| 299 const float kDeviceScale = 1.666f; | 282 const float kDeviceScale = 1.666f; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 scoped_refptr<Layer> parent = Layer::Create(layer_settings()); | 368 scoped_refptr<Layer> parent = Layer::Create(layer_settings()); |
| 386 scoped_refptr<Layer> child = Layer::Create(layer_settings()); | 369 scoped_refptr<Layer> child = Layer::Create(layer_settings()); |
| 387 scoped_refptr<Layer> grand_child = Layer::Create(layer_settings()); | 370 scoped_refptr<Layer> grand_child = Layer::Create(layer_settings()); |
| 388 root->AddChild(parent); | 371 root->AddChild(parent); |
| 389 parent->AddChild(child); | 372 parent->AddChild(child); |
| 390 child->AddChild(grand_child); | 373 child->AddChild(grand_child); |
| 391 | 374 |
| 392 host()->SetRootLayer(root); | 375 host()->SetRootLayer(root); |
| 393 | 376 |
| 394 // One-time setup of root layer | 377 // One-time setup of root layer |
| 395 SetLayerPropertiesForTesting(root.get(), | 378 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
| 396 identity_matrix, | 379 gfx::PointF(), gfx::Size(1, 2), true, false); |
| 397 gfx::Point3F(), | 380 |
| 398 gfx::PointF(), | 381 TransformTree& tree = host()->property_trees()->transform_tree; |
| 399 gfx::Size(1, 2), | |
| 400 true, | |
| 401 false); | |
| 402 | 382 |
| 403 // Case 1: parent's anchor point should not affect child or grand_child. | 383 // Case 1: parent's anchor point should not affect child or grand_child. |
| 404 SetLayerPropertiesForTesting(parent.get(), | 384 SetLayerPropertiesForTesting(parent.get(), identity_matrix, |
| 405 identity_matrix, | 385 gfx::Point3F(2.5f, 3.0f, 0.f), gfx::PointF(), |
| 406 gfx::Point3F(2.5f, 3.0f, 0.f), | 386 gfx::Size(10, 12), true, false); |
| 407 gfx::PointF(), | 387 SetLayerPropertiesForTesting(child.get(), identity_matrix, gfx::Point3F(), |
| 408 gfx::Size(10, 12), | 388 gfx::PointF(), gfx::Size(16, 18), true, false); |
| 409 true, | 389 SetLayerPropertiesForTesting(grand_child.get(), identity_matrix, |
| 410 false); | 390 gfx::Point3F(), gfx::PointF(), gfx::Size(76, 78), |
| 411 SetLayerPropertiesForTesting(child.get(), | 391 true, false); |
| 412 identity_matrix, | |
| 413 gfx::Point3F(), | |
| 414 gfx::PointF(), | |
| 415 gfx::Size(16, 18), | |
| 416 true, | |
| 417 false); | |
| 418 SetLayerPropertiesForTesting(grand_child.get(), | |
| 419 identity_matrix, | |
| 420 gfx::Point3F(), | |
| 421 gfx::PointF(), | |
| 422 gfx::Size(76, 78), | |
| 423 true, | |
| 424 false); | |
| 425 ExecuteCalculateDrawProperties(root.get()); | 392 ExecuteCalculateDrawProperties(root.get()); |
| 426 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, child->draw_transform()); | 393 |
| 427 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, | 394 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 428 child->screen_space_transform()); | 395 identity_matrix, DrawTransformFromPropertyTrees(child.get(), tree)); |
| 429 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, | 396 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 430 grand_child->draw_transform()); | 397 identity_matrix, |
| 431 EXPECT_TRANSFORMATION_MATRIX_EQ(identity_matrix, | 398 ScreenSpaceTransformFromPropertyTrees(child.get(), tree)); |
| 432 grand_child->screen_space_transform()); | 399 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 400 identity_matrix, DrawTransformFromPropertyTrees(grand_child.get(), tree)); |
| 401 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 402 identity_matrix, |
| 403 ScreenSpaceTransformFromPropertyTrees(grand_child.get(), tree)); |
| 433 | 404 |
| 434 // Case 2: parent's position affects child and grand_child. | 405 // Case 2: parent's position affects child and grand_child. |
| 435 gfx::Transform parent_position_transform; | 406 gfx::Transform parent_position_transform; |
| 436 parent_position_transform.Translate(0.f, 1.2f); | 407 parent_position_transform.Translate(0.f, 1.2f); |
| 437 SetLayerPropertiesForTesting(parent.get(), | 408 SetLayerPropertiesForTesting( |
| 438 identity_matrix, | 409 parent.get(), identity_matrix, gfx::Point3F(2.5f, 3.0f, 0.f), |
| 439 gfx::Point3F(2.5f, 3.0f, 0.f), | 410 gfx::PointF(0.f, 1.2f), gfx::Size(10, 12), true, false); |
| 440 gfx::PointF(0.f, 1.2f), | 411 SetLayerPropertiesForTesting(child.get(), identity_matrix, gfx::Point3F(), |
| 441 gfx::Size(10, 12), | 412 gfx::PointF(), gfx::Size(16, 18), true, false); |
| 442 true, | 413 SetLayerPropertiesForTesting(grand_child.get(), identity_matrix, |
| 443 false); | 414 gfx::Point3F(), gfx::PointF(), gfx::Size(76, 78), |
| 444 SetLayerPropertiesForTesting(child.get(), | 415 true, false); |
| 445 identity_matrix, | |
| 446 gfx::Point3F(), | |
| 447 gfx::PointF(), | |
| 448 gfx::Size(16, 18), | |
| 449 true, | |
| 450 false); | |
| 451 SetLayerPropertiesForTesting(grand_child.get(), | |
| 452 identity_matrix, | |
| 453 gfx::Point3F(), | |
| 454 gfx::PointF(), | |
| 455 gfx::Size(76, 78), | |
| 456 true, | |
| 457 false); | |
| 458 ExecuteCalculateDrawProperties(root.get()); | 416 ExecuteCalculateDrawProperties(root.get()); |
| 459 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_position_transform, | 417 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 460 child->draw_transform()); | 418 parent_position_transform, |
| 461 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_position_transform, | 419 DrawTransformFromPropertyTrees(child.get(), tree)); |
| 462 child->screen_space_transform()); | 420 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 463 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_position_transform, | 421 parent_position_transform, |
| 464 grand_child->draw_transform()); | 422 ScreenSpaceTransformFromPropertyTrees(child.get(), tree)); |
| 465 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_position_transform, | 423 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 466 grand_child->screen_space_transform()); | 424 parent_position_transform, |
| 425 DrawTransformFromPropertyTrees(grand_child.get(), tree)); |
| 426 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 427 parent_position_transform, |
| 428 ScreenSpaceTransformFromPropertyTrees(grand_child.get(), tree)); |
| 467 | 429 |
| 468 // Case 3: parent's local transform affects child and grandchild | 430 // Case 3: parent's local transform affects child and grandchild |
| 469 gfx::Transform parent_layer_transform; | 431 gfx::Transform parent_layer_transform; |
| 470 parent_layer_transform.Scale3d(2.0, 2.0, 1.0); | 432 parent_layer_transform.Scale3d(2.0, 2.0, 1.0); |
| 471 gfx::Transform parent_translation_to_anchor; | 433 gfx::Transform parent_translation_to_anchor; |
| 472 parent_translation_to_anchor.Translate(2.5, 3.0); | 434 parent_translation_to_anchor.Translate(2.5, 3.0); |
| 473 gfx::Transform parent_composite_transform = | 435 gfx::Transform parent_composite_transform = |
| 474 parent_translation_to_anchor * parent_layer_transform * | 436 parent_translation_to_anchor * parent_layer_transform * |
| 475 Inverse(parent_translation_to_anchor); | 437 Inverse(parent_translation_to_anchor); |
| 476 SetLayerPropertiesForTesting(parent.get(), | 438 SetLayerPropertiesForTesting(parent.get(), parent_layer_transform, |
| 477 parent_layer_transform, | 439 gfx::Point3F(2.5f, 3.0f, 0.f), gfx::PointF(), |
| 478 gfx::Point3F(2.5f, 3.0f, 0.f), | 440 gfx::Size(10, 12), true, false); |
| 479 gfx::PointF(), | 441 SetLayerPropertiesForTesting(child.get(), identity_matrix, gfx::Point3F(), |
| 480 gfx::Size(10, 12), | 442 gfx::PointF(), gfx::Size(16, 18), true, false); |
| 481 true, | 443 SetLayerPropertiesForTesting(grand_child.get(), identity_matrix, |
| 482 false); | 444 gfx::Point3F(), gfx::PointF(), gfx::Size(76, 78), |
| 483 SetLayerPropertiesForTesting(child.get(), | 445 true, false); |
| 484 identity_matrix, | |
| 485 gfx::Point3F(), | |
| 486 gfx::PointF(), | |
| 487 gfx::Size(16, 18), | |
| 488 true, | |
| 489 false); | |
| 490 SetLayerPropertiesForTesting(grand_child.get(), | |
| 491 identity_matrix, | |
| 492 gfx::Point3F(), | |
| 493 gfx::PointF(), | |
| 494 gfx::Size(76, 78), | |
| 495 true, | |
| 496 false); | |
| 497 ExecuteCalculateDrawProperties(root.get()); | 446 ExecuteCalculateDrawProperties(root.get()); |
| 498 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_composite_transform, | 447 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 499 child->draw_transform()); | 448 parent_composite_transform, |
| 500 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_composite_transform, | 449 DrawTransformFromPropertyTrees(child.get(), tree)); |
| 501 child->screen_space_transform()); | 450 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 502 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_composite_transform, | 451 parent_composite_transform, |
| 503 grand_child->draw_transform()); | 452 ScreenSpaceTransformFromPropertyTrees(child.get(), tree)); |
| 504 EXPECT_TRANSFORMATION_MATRIX_EQ(parent_composite_transform, | 453 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 505 grand_child->screen_space_transform()); | 454 parent_composite_transform, |
| 455 DrawTransformFromPropertyTrees(grand_child.get(), tree)); |
| 456 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 457 parent_composite_transform, |
| 458 ScreenSpaceTransformFromPropertyTrees(grand_child.get(), tree)); |
| 506 } | 459 } |
| 507 | 460 |
| 508 TEST_F(LayerTreeHostCommonTest, TransformsForSingleRenderSurface) { | 461 TEST_F(LayerTreeHostCommonTest, TransformsForSingleRenderSurface) { |
| 509 LayerImpl* root = root_layer(); | 462 LayerImpl* root = root_layer(); |
| 510 LayerImpl* parent = AddChildToRoot<LayerImpl>(); | 463 LayerImpl* parent = AddChildToRoot<LayerImpl>(); |
| 511 LayerImpl* child = AddChild<LayerImpl>(parent); | 464 LayerImpl* child = AddChild<LayerImpl>(parent); |
| 512 LayerImpl* grand_child = AddChild<LayerImpl>(child); | 465 LayerImpl* grand_child = AddChild<LayerImpl>(child); |
| 513 grand_child->SetDrawsContent(true); | 466 grand_child->SetDrawsContent(true); |
| 514 | 467 |
| 515 gfx::Transform identity_matrix; | 468 gfx::Transform identity_matrix; |
| (...skipping 7371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7887 gfx::PointF(), gfx::Size(30, 30), true, false, | 7840 gfx::PointF(), gfx::Size(30, 30), true, false, |
| 7888 false); | 7841 false); |
| 7889 | 7842 |
| 7890 ExecuteCalculateDrawProperties(root); | 7843 ExecuteCalculateDrawProperties(root); |
| 7891 | 7844 |
| 7892 EXPECT_EQ(test_layer->clip_rect(), gfx::RectF(-4, -4, 30, 30)); | 7845 EXPECT_EQ(test_layer->clip_rect(), gfx::RectF(-4, -4, 30, 30)); |
| 7893 } | 7846 } |
| 7894 | 7847 |
| 7895 } // namespace | 7848 } // namespace |
| 7896 } // namespace cc | 7849 } // namespace cc |
| OLD | NEW |