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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 2535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2546 grand_child_of_root, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), | 2546 grand_child_of_root, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), |
2547 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); | 2547 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); |
2548 SetLayerPropertiesForTesting( | 2548 SetLayerPropertiesForTesting( |
2549 grand_child_of_rs1, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), | 2549 grand_child_of_rs1, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), |
2550 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); | 2550 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); |
2551 SetLayerPropertiesForTesting( | 2551 SetLayerPropertiesForTesting( |
2552 grand_child_of_rs2, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), | 2552 grand_child_of_rs2, layer_transform, gfx::Point3F(0.25f, 0.f, 0.f), |
2553 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); | 2553 gfx::PointF(2.5f, 0.f), gfx::Size(10, 10), true, false, false); |
2554 | 2554 |
2555 parent->layer_tree_impl()->BuildPropertyTreesForTesting(); | 2555 parent->layer_tree_impl()->BuildPropertyTreesForTesting(); |
| 2556 SetElementIdsForTesting(); |
2556 | 2557 |
2557 // Put an animated opacity on the render surface. | 2558 // Put an animated opacity on the render surface. |
2558 AddOpacityTransitionToLayerWithPlayer(render_surface1->id(), timeline_impl(), | 2559 AddOpacityTransitionToElementWithPlayer( |
2559 10.0, 1.f, 0.f, false); | 2560 render_surface1->element_id(), timeline_impl(), 10.0, 1.f, 0.f, false); |
2560 | 2561 |
2561 // Also put an animated opacity on a layer without descendants. | 2562 // Also put an animated opacity on a layer without descendants. |
2562 AddOpacityTransitionToLayerWithPlayer(grand_child_of_root->id(), | 2563 AddOpacityTransitionToElementWithPlayer(grand_child_of_root->element_id(), |
2563 timeline_impl(), 10.0, 1.f, 0.f, false); | 2564 timeline_impl(), 10.0, 1.f, 0.f, |
| 2565 false); |
2564 | 2566 |
2565 // Put a transform animation on the render surface. | 2567 // Put a transform animation on the render surface. |
2566 AddAnimatedTransformToLayerWithPlayer(render_surface2->id(), timeline_impl(), | 2568 AddAnimatedTransformToElementWithPlayer(render_surface2->element_id(), |
2567 10.0, 30, 0); | 2569 timeline_impl(), 10.0, 30, 0); |
2568 | 2570 |
2569 // Also put transform animations on grand_child_of_root, and | 2571 // Also put transform animations on grand_child_of_root, and |
2570 // grand_child_of_rs2 | 2572 // grand_child_of_rs2 |
2571 AddAnimatedTransformToLayerWithPlayer(grand_child_of_root->id(), | 2573 AddAnimatedTransformToElementWithPlayer(grand_child_of_root->element_id(), |
2572 timeline_impl(), 10.0, 30, 0); | 2574 timeline_impl(), 10.0, 30, 0); |
2573 AddAnimatedTransformToLayerWithPlayer(grand_child_of_rs2->id(), | 2575 AddAnimatedTransformToElementWithPlayer(grand_child_of_rs2->element_id(), |
2574 timeline_impl(), 10.0, 30, 0); | 2576 timeline_impl(), 10.0, 30, 0); |
2575 | 2577 |
2576 parent->layer_tree_impl()->property_trees()->needs_rebuild = true; | 2578 parent->layer_tree_impl()->property_trees()->needs_rebuild = true; |
2577 ExecuteCalculateDrawProperties(parent); | 2579 ExecuteCalculateDrawProperties(parent); |
2578 | 2580 |
2579 // Only layers that are associated with render surfaces should have an actual | 2581 // Only layers that are associated with render surfaces should have an actual |
2580 // RenderSurface() value. | 2582 // RenderSurface() value. |
2581 ASSERT_TRUE(parent->render_surface()); | 2583 ASSERT_TRUE(parent->render_surface()); |
2582 ASSERT_FALSE(child_of_root->render_surface()); | 2584 ASSERT_FALSE(child_of_root->render_surface()); |
2583 ASSERT_FALSE(grand_child_of_root->render_surface()); | 2585 ASSERT_FALSE(grand_child_of_root->render_surface()); |
2584 | 2586 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2683 gfx::Size(10, 10), true, false, true); | 2685 gfx::Size(10, 10), true, false, true); |
2684 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), | 2686 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), |
2685 gfx::Size(10, 10), true, false, false); | 2687 gfx::Size(10, 10), true, false, false); |
2686 SetLayerPropertiesForTesting(grand_child, identity, gfx::Point3F(), | 2688 SetLayerPropertiesForTesting(grand_child, identity, gfx::Point3F(), |
2687 gfx::PointF(), gfx::Size(10, 10), true, false, | 2689 gfx::PointF(), gfx::Size(10, 10), true, false, |
2688 false); | 2690 false); |
2689 SetLayerPropertiesForTesting(great_grand_child, identity, gfx::Point3F(), | 2691 SetLayerPropertiesForTesting(great_grand_child, identity, gfx::Point3F(), |
2690 gfx::PointF(), gfx::Size(10, 10), true, false, | 2692 gfx::PointF(), gfx::Size(10, 10), true, false, |
2691 false); | 2693 false); |
2692 | 2694 |
| 2695 SetElementIdsForTesting(); |
| 2696 |
2693 // Add a transform animation with a start delay to |grand_child|. | 2697 // Add a transform animation with a start delay to |grand_child|. |
2694 std::unique_ptr<Animation> animation = Animation::Create( | 2698 std::unique_ptr<Animation> animation = Animation::Create( |
2695 std::unique_ptr<AnimationCurve>(new FakeTransformTransition(1.0)), 0, 1, | 2699 std::unique_ptr<AnimationCurve>(new FakeTransformTransition(1.0)), 0, 1, |
2696 TargetProperty::TRANSFORM); | 2700 TargetProperty::TRANSFORM); |
2697 animation->set_fill_mode(Animation::FillMode::NONE); | 2701 animation->set_fill_mode(Animation::FillMode::NONE); |
2698 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 2702 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
2699 AddAnimationToLayerWithPlayer(grand_child->id(), timeline_impl(), | 2703 AddAnimationToElementWithPlayer(grand_child->element_id(), timeline_impl(), |
2700 std::move(animation)); | 2704 std::move(animation)); |
2701 ExecuteCalculateDrawProperties(parent); | 2705 ExecuteCalculateDrawProperties(parent); |
2702 | 2706 |
2703 EXPECT_FALSE(parent->screen_space_transform_is_animating()); | 2707 EXPECT_FALSE(parent->screen_space_transform_is_animating()); |
2704 EXPECT_FALSE(child->screen_space_transform_is_animating()); | 2708 EXPECT_FALSE(child->screen_space_transform_is_animating()); |
2705 | 2709 |
2706 EXPECT_FALSE(grand_child->TransformIsAnimating()); | 2710 EXPECT_FALSE(grand_child->TransformIsAnimating()); |
2707 EXPECT_TRUE(grand_child->HasPotentiallyRunningTransformAnimation()); | 2711 EXPECT_TRUE(grand_child->HasPotentiallyRunningTransformAnimation()); |
2708 EXPECT_TRUE(grand_child->screen_space_transform_is_animating()); | 2712 EXPECT_TRUE(grand_child->screen_space_transform_is_animating()); |
2709 EXPECT_TRUE(great_grand_child->screen_space_transform_is_animating()); | 2713 EXPECT_TRUE(great_grand_child->screen_space_transform_is_animating()); |
2710 } | 2714 } |
(...skipping 1700 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4411 child2->SetDrawsContent(true); | 4415 child2->SetDrawsContent(true); |
4412 animating_surface->SetDrawsContent(true); | 4416 animating_surface->SetDrawsContent(true); |
4413 child_of_animating_surface->SetDrawsContent(true); | 4417 child_of_animating_surface->SetDrawsContent(true); |
4414 animating_child->SetDrawsContent(true); | 4418 animating_child->SetDrawsContent(true); |
4415 | 4419 |
4416 gfx::Transform backface_matrix; | 4420 gfx::Transform backface_matrix; |
4417 backface_matrix.Translate(50.0, 50.0); | 4421 backface_matrix.Translate(50.0, 50.0); |
4418 backface_matrix.RotateAboutYAxis(180.0); | 4422 backface_matrix.RotateAboutYAxis(180.0); |
4419 backface_matrix.Translate(-50.0, -50.0); | 4423 backface_matrix.Translate(-50.0, -50.0); |
4420 | 4424 |
| 4425 SetElementIdsForTesting(); |
| 4426 |
4421 // Animate the transform on the render surface. | 4427 // Animate the transform on the render surface. |
4422 AddAnimatedTransformToLayerWithPlayer(animating_surface->id(), | 4428 AddAnimatedTransformToElementWithPlayer(animating_surface->element_id(), |
4423 timeline_impl(), 10.0, 30, 0); | 4429 timeline_impl(), 10.0, 30, 0); |
4424 // This is just an animating layer, not a surface. | 4430 // This is just an animating layer, not a surface. |
4425 AddAnimatedTransformToLayerWithPlayer(animating_child->id(), timeline_impl(), | 4431 AddAnimatedTransformToElementWithPlayer(animating_child->element_id(), |
4426 10.0, 30, 0); | 4432 timeline_impl(), 10.0, 30, 0); |
4427 | 4433 |
4428 SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(), | 4434 SetLayerPropertiesForTesting(parent, identity_matrix, gfx::Point3F(), |
4429 gfx::PointF(), gfx::Size(100, 100), true, false); | 4435 gfx::PointF(), gfx::Size(100, 100), true, false); |
4430 SetLayerPropertiesForTesting(child, backface_matrix, gfx::Point3F(), | 4436 SetLayerPropertiesForTesting(child, backface_matrix, gfx::Point3F(), |
4431 gfx::PointF(), gfx::Size(100, 100), true, false); | 4437 gfx::PointF(), gfx::Size(100, 100), true, false); |
4432 SetLayerPropertiesForTesting(animating_surface, backface_matrix, | 4438 SetLayerPropertiesForTesting(animating_surface, backface_matrix, |
4433 gfx::Point3F(), gfx::PointF(), | 4439 gfx::Point3F(), gfx::PointF(), |
4434 gfx::Size(100, 100), true, false, true); | 4440 gfx::Size(100, 100), true, false, true); |
4435 SetLayerPropertiesForTesting(child_of_animating_surface, backface_matrix, | 4441 SetLayerPropertiesForTesting(child_of_animating_surface, backface_matrix, |
4436 gfx::Point3F(), gfx::PointF(), | 4442 gfx::Point3F(), gfx::PointF(), |
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5028 false); | 5034 false); |
5029 child->SetDrawsContent(true); | 5035 child->SetDrawsContent(true); |
5030 child->test_properties()->opacity = 0.0f; | 5036 child->test_properties()->opacity = 0.0f; |
5031 | 5037 |
5032 const int child_id = child->id(); | 5038 const int child_id = child->id(); |
5033 root->AddChild(std::move(child)); | 5039 root->AddChild(std::move(child)); |
5034 root->SetHasRenderSurface(true); | 5040 root->SetHasRenderSurface(true); |
5035 LayerImpl* root_layer = root.get(); | 5041 LayerImpl* root_layer = root.get(); |
5036 host_impl.pending_tree()->SetRootLayer(std::move(root)); | 5042 host_impl.pending_tree()->SetRootLayer(std::move(root)); |
5037 host_impl.pending_tree()->BuildPropertyTreesForTesting(); | 5043 host_impl.pending_tree()->BuildPropertyTreesForTesting(); |
| 5044 |
5038 // Add opacity animation. | 5045 // Add opacity animation. |
5039 scoped_refptr<AnimationTimeline> timeline = | 5046 scoped_refptr<AnimationTimeline> timeline = |
5040 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); | 5047 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); |
5041 host_impl.animation_host()->AddAnimationTimeline(timeline); | 5048 host_impl.animation_host()->AddAnimationTimeline(timeline); |
| 5049 host_impl.pending_tree()->SetElementIdsForTesting(); |
5042 | 5050 |
5043 AddOpacityTransitionToLayerWithPlayer(child_id, timeline, 10.0, 0.0f, 1.0f, | 5051 ElementId child_element_id = |
5044 false); | 5052 host_impl.pending_tree()->LayerById(child_id)->element_id(); |
| 5053 |
| 5054 AddOpacityTransitionToElementWithPlayer(child_element_id, timeline, 10.0, |
| 5055 0.0f, 1.0f, false); |
5045 | 5056 |
5046 LayerImplList render_surface_layer_list; | 5057 LayerImplList render_surface_layer_list; |
5047 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( | 5058 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
5048 root_layer, root_layer->bounds(), &render_surface_layer_list); | 5059 root_layer, root_layer->bounds(), &render_surface_layer_list); |
5049 inputs.can_adjust_raster_scales = true; | 5060 inputs.can_adjust_raster_scales = true; |
5050 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); | 5061 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
5051 | 5062 |
5052 // We should have one render surface and two layers. The child | 5063 // We should have one render surface and two layers. The child |
5053 // layer should be included even though it is transparent. | 5064 // layer should be included even though it is transparent. |
5054 ASSERT_EQ(1u, render_surface_layer_list.size()); | 5065 ASSERT_EQ(1u, render_surface_layer_list.size()); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5146 | 5157 |
5147 // Stash raw pointers to look at later. | 5158 // Stash raw pointers to look at later. |
5148 root_ = root_ptr.get(); | 5159 root_ = root_ptr.get(); |
5149 child_ = child_ptr.get(); | 5160 child_ = child_ptr.get(); |
5150 grand_child_ = grand_child_ptr.get(); | 5161 grand_child_ = grand_child_ptr.get(); |
5151 | 5162 |
5152 child_->AddChild(std::move(grand_child_ptr)); | 5163 child_->AddChild(std::move(grand_child_ptr)); |
5153 root_->AddChild(std::move(child_ptr)); | 5164 root_->AddChild(std::move(child_ptr)); |
5154 host_impl_.active_tree()->SetRootLayer(std::move(root_ptr)); | 5165 host_impl_.active_tree()->SetRootLayer(std::move(root_ptr)); |
5155 | 5166 |
| 5167 host_impl_.active_tree()->SetElementIdsForTesting(); |
| 5168 |
5156 root_->SetContentsOpaque(true); | 5169 root_->SetContentsOpaque(true); |
5157 child_->SetContentsOpaque(true); | 5170 child_->SetContentsOpaque(true); |
5158 grand_child_->SetContentsOpaque(true); | 5171 grand_child_->SetContentsOpaque(true); |
5159 | 5172 |
5160 root_->SetDrawsContent(true); | 5173 root_->SetDrawsContent(true); |
5161 child_->SetDrawsContent(true); | 5174 child_->SetDrawsContent(true); |
5162 grand_child_->SetDrawsContent(true); | 5175 grand_child_->SetDrawsContent(true); |
5163 | 5176 |
5164 gfx::Transform identity_matrix; | 5177 gfx::Transform identity_matrix; |
5165 SetLayerPropertiesForTesting(root_, identity_matrix, gfx::Point3F(), | 5178 SetLayerPropertiesForTesting(root_, identity_matrix, gfx::Point3F(), |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5287 | 5300 |
5288 // Sanity check: Make sure can_use_lcd_text_ is set on each node. | 5301 // Sanity check: Make sure can_use_lcd_text_ is set on each node. |
5289 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); | 5302 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); |
5290 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); | 5303 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); |
5291 EXPECT_EQ(expect_lcd_text, child_->CanUseLCDText()); | 5304 EXPECT_EQ(expect_lcd_text, child_->CanUseLCDText()); |
5292 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); | 5305 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); |
5293 | 5306 |
5294 // Add opacity animation. | 5307 // Add opacity animation. |
5295 child_->test_properties()->opacity = 0.9f; | 5308 child_->test_properties()->opacity = 0.9f; |
5296 child_->layer_tree_impl()->property_trees()->needs_rebuild = true; | 5309 child_->layer_tree_impl()->property_trees()->needs_rebuild = true; |
5297 AddOpacityTransitionToLayerWithPlayer(child_->id(), timeline(), 10.0, 0.9f, | 5310 |
5298 0.1f, false); | 5311 SetElementIdsForTesting(); |
| 5312 |
| 5313 AddOpacityTransitionToElementWithPlayer(child_->element_id(), timeline(), |
| 5314 10.0, 0.9f, 0.1f, false); |
5299 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); | 5315 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); |
5300 // Text LCD should be adjusted while animation is active. | 5316 // Text LCD should be adjusted while animation is active. |
5301 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); | 5317 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); |
5302 EXPECT_EQ(expect_not_lcd_text, child_->CanUseLCDText()); | 5318 EXPECT_EQ(expect_not_lcd_text, child_->CanUseLCDText()); |
5303 EXPECT_EQ(expect_not_lcd_text, grand_child_->CanUseLCDText()); | 5319 EXPECT_EQ(expect_not_lcd_text, grand_child_->CanUseLCDText()); |
5304 } | 5320 } |
5305 | 5321 |
5306 TEST_P(LCDTextTest, CanUseLCDTextWithAnimationContentsOpaque) { | 5322 TEST_P(LCDTextTest, CanUseLCDTextWithAnimationContentsOpaque) { |
5307 bool expect_lcd_text = can_use_lcd_text_ || layers_always_allowed_lcd_text_; | 5323 bool expect_lcd_text = can_use_lcd_text_ || layers_always_allowed_lcd_text_; |
5308 bool expect_not_lcd_text = layers_always_allowed_lcd_text_; | 5324 bool expect_not_lcd_text = layers_always_allowed_lcd_text_; |
5309 | 5325 |
5310 // Sanity check: Make sure can_use_lcd_text_ is set on each node. | 5326 // Sanity check: Make sure can_use_lcd_text_ is set on each node. |
5311 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); | 5327 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); |
5312 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); | 5328 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); |
5313 EXPECT_EQ(expect_lcd_text, child_->CanUseLCDText()); | 5329 EXPECT_EQ(expect_lcd_text, child_->CanUseLCDText()); |
5314 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); | 5330 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); |
| 5331 SetElementIdsForTesting(); |
5315 | 5332 |
5316 // Mark contents non-opaque within the first animation frame. | 5333 // Mark contents non-opaque within the first animation frame. |
5317 child_->SetContentsOpaque(false); | 5334 child_->SetContentsOpaque(false); |
5318 AddOpacityTransitionToLayerWithPlayer(child_->id(), timeline(), 10.0, 0.9f, | 5335 AddOpacityTransitionToElementWithPlayer(child_->element_id(), timeline(), |
5319 0.1f, false); | 5336 10.0, 0.9f, 0.1f, false); |
5320 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); | 5337 ExecuteCalculateDrawProperties(root_, 1.f, 1.f, NULL); |
5321 // LCD text should be disabled for non-opaque layers even during animations. | 5338 // LCD text should be disabled for non-opaque layers even during animations. |
5322 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); | 5339 EXPECT_EQ(expect_lcd_text, root_->CanUseLCDText()); |
5323 EXPECT_EQ(expect_not_lcd_text, child_->CanUseLCDText()); | 5340 EXPECT_EQ(expect_not_lcd_text, child_->CanUseLCDText()); |
5324 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); | 5341 EXPECT_EQ(expect_lcd_text, grand_child_->CanUseLCDText()); |
5325 } | 5342 } |
5326 | 5343 |
5327 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest, | 5344 INSTANTIATE_TEST_CASE_P(LayerTreeHostCommonTest, |
5328 LCDTextTest, | 5345 LCDTextTest, |
5329 testing::Combine(testing::Bool(), | 5346 testing::Combine(testing::Bool(), |
(...skipping 1744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7074 SetLayerPropertiesForTesting(scroller, identity_transform, gfx::Point3F(), | 7091 SetLayerPropertiesForTesting(scroller, identity_transform, gfx::Point3F(), |
7075 gfx::PointF(), gfx::Size(100, 100), true, false, | 7092 gfx::PointF(), gfx::Size(100, 100), true, false, |
7076 false); | 7093 false); |
7077 | 7094 |
7078 gfx::Transform end_scale; | 7095 gfx::Transform end_scale; |
7079 end_scale.Scale(2.f, 2.f); | 7096 end_scale.Scale(2.f, 2.f); |
7080 TransformOperations start_operations; | 7097 TransformOperations start_operations; |
7081 start_operations.AppendMatrix(start_scale); | 7098 start_operations.AppendMatrix(start_scale); |
7082 TransformOperations end_operations; | 7099 TransformOperations end_operations; |
7083 end_operations.AppendMatrix(end_scale); | 7100 end_operations.AppendMatrix(end_scale); |
7084 AddAnimatedTransformToLayerWithPlayer(animated_layer->id(), timeline_impl(), | 7101 SetElementIdsForTesting(); |
7085 1.0, start_operations, end_operations); | 7102 |
| 7103 AddAnimatedTransformToElementWithPlayer(animated_layer->element_id(), |
| 7104 timeline_impl(), 1.0, |
| 7105 start_operations, end_operations); |
7086 gfx::Vector2dF scroll_delta(5.f, 9.f); | 7106 gfx::Vector2dF scroll_delta(5.f, 9.f); |
7087 SetScrollOffsetDelta(scroller, scroll_delta); | 7107 SetScrollOffsetDelta(scroller, scroll_delta); |
7088 | 7108 |
7089 ExecuteCalculateDrawProperties(root); | 7109 ExecuteCalculateDrawProperties(root); |
7090 | 7110 |
7091 gfx::Vector2dF expected_draw_transform_translation(-7.5f, -13.5f); | 7111 gfx::Vector2dF expected_draw_transform_translation(-7.5f, -13.5f); |
7092 EXPECT_VECTOR2DF_EQ(expected_draw_transform_translation, | 7112 EXPECT_VECTOR2DF_EQ(expected_draw_transform_translation, |
7093 scroller->DrawTransform().To2dTranslation()); | 7113 scroller->DrawTransform().To2dTranslation()); |
7094 } | 7114 } |
7095 | 7115 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7178 0.f, | 7198 0.f, |
7179 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7199 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7180 | 7200 |
7181 TransformOperations translation; | 7201 TransformOperations translation; |
7182 translation.AppendTranslate(1.f, 2.f, 3.f); | 7202 translation.AppendTranslate(1.f, 2.f, 3.f); |
7183 | 7203 |
7184 scoped_refptr<AnimationTimeline> timeline; | 7204 scoped_refptr<AnimationTimeline> timeline; |
7185 timeline = AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); | 7205 timeline = AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); |
7186 host_impl.animation_host()->AddAnimationTimeline(timeline); | 7206 host_impl.animation_host()->AddAnimationTimeline(timeline); |
7187 | 7207 |
7188 AddAnimatedTransformToLayerWithPlayer(parent_raw->id(), timeline, 1.0, | 7208 host_impl.active_tree()->SetElementIdsForTesting(); |
7189 TransformOperations(), translation); | 7209 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, |
| 7210 1.0, TransformOperations(), |
| 7211 translation); |
7190 | 7212 |
7191 // No layers have scale-affecting animations. | 7213 // No layers have scale-affecting animations. |
7192 EXPECT_EQ( | 7214 EXPECT_EQ( |
7193 0.f, | 7215 0.f, |
7194 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7216 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7195 EXPECT_EQ(0.f, | 7217 EXPECT_EQ(0.f, |
7196 parent_raw->draw_properties().maximum_animation_contents_scale); | 7218 parent_raw->draw_properties().maximum_animation_contents_scale); |
7197 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); | 7219 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); |
7198 EXPECT_EQ( | 7220 EXPECT_EQ( |
7199 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); | 7221 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); |
7200 | 7222 |
7201 EXPECT_EQ( | 7223 EXPECT_EQ( |
7202 0.f, | 7224 0.f, |
7203 grand_parent_raw->draw_properties().starting_animation_contents_scale); | 7225 grand_parent_raw->draw_properties().starting_animation_contents_scale); |
7204 EXPECT_EQ(0.f, | 7226 EXPECT_EQ(0.f, |
7205 parent_raw->draw_properties().starting_animation_contents_scale); | 7227 parent_raw->draw_properties().starting_animation_contents_scale); |
7206 EXPECT_EQ(0.f, | 7228 EXPECT_EQ(0.f, |
7207 child_raw->draw_properties().starting_animation_contents_scale); | 7229 child_raw->draw_properties().starting_animation_contents_scale); |
7208 EXPECT_EQ( | 7230 EXPECT_EQ( |
7209 0.f, | 7231 0.f, |
7210 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7232 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7211 | 7233 |
7212 TransformOperations scale; | 7234 TransformOperations scale; |
7213 scale.AppendScale(5.f, 4.f, 3.f); | 7235 scale.AppendScale(5.f, 4.f, 3.f); |
7214 | 7236 |
7215 AddAnimatedTransformToLayerWithPlayer(child_raw->id(), timeline, 1.0, | 7237 AddAnimatedTransformToElementWithPlayer(child_raw->element_id(), timeline, |
7216 TransformOperations(), scale); | 7238 1.0, TransformOperations(), scale); |
7217 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7239 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7218 ExecuteCalculateDrawProperties(grand_parent_raw); | 7240 ExecuteCalculateDrawProperties(grand_parent_raw); |
7219 | 7241 |
7220 // Only |child| has a scale-affecting animation. | 7242 // Only |child| has a scale-affecting animation. |
7221 EXPECT_EQ( | 7243 EXPECT_EQ( |
7222 0.f, | 7244 0.f, |
7223 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7245 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7224 EXPECT_EQ(0.f, | 7246 EXPECT_EQ(0.f, |
7225 parent_raw->draw_properties().maximum_animation_contents_scale); | 7247 parent_raw->draw_properties().maximum_animation_contents_scale); |
7226 EXPECT_EQ(5.f, child_raw->draw_properties().maximum_animation_contents_scale); | 7248 EXPECT_EQ(5.f, child_raw->draw_properties().maximum_animation_contents_scale); |
7227 EXPECT_EQ( | 7249 EXPECT_EQ( |
7228 5.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); | 7250 5.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); |
7229 | 7251 |
7230 EXPECT_EQ( | 7252 EXPECT_EQ( |
7231 0.f, | 7253 0.f, |
7232 grand_parent_raw->draw_properties().starting_animation_contents_scale); | 7254 grand_parent_raw->draw_properties().starting_animation_contents_scale); |
7233 EXPECT_EQ(0.f, | 7255 EXPECT_EQ(0.f, |
7234 parent_raw->draw_properties().starting_animation_contents_scale); | 7256 parent_raw->draw_properties().starting_animation_contents_scale); |
7235 EXPECT_EQ(1.f, | 7257 EXPECT_EQ(1.f, |
7236 child_raw->draw_properties().starting_animation_contents_scale); | 7258 child_raw->draw_properties().starting_animation_contents_scale); |
7237 EXPECT_EQ( | 7259 EXPECT_EQ( |
7238 1.f, | 7260 1.f, |
7239 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7261 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7240 | 7262 |
7241 AddAnimatedTransformToLayerWithPlayer(grand_parent_raw->id(), timeline, 1.0, | 7263 AddAnimatedTransformToElementWithPlayer(grand_parent_raw->element_id(), |
7242 TransformOperations(), scale); | 7264 timeline, 1.0, TransformOperations(), |
| 7265 scale); |
7243 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7266 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7244 ExecuteCalculateDrawProperties(grand_parent_raw); | 7267 ExecuteCalculateDrawProperties(grand_parent_raw); |
7245 | 7268 |
7246 // |grand_parent| and |child| have scale-affecting animations. | 7269 // |grand_parent| and |child| have scale-affecting animations. |
7247 EXPECT_EQ( | 7270 EXPECT_EQ( |
7248 5.f, | 7271 5.f, |
7249 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7272 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7250 EXPECT_EQ(5.f, | 7273 EXPECT_EQ(5.f, |
7251 parent_raw->draw_properties().maximum_animation_contents_scale); | 7274 parent_raw->draw_properties().maximum_animation_contents_scale); |
7252 // We don't support combining animated scales from two nodes; 0.f means | 7275 // We don't support combining animated scales from two nodes; 0.f means |
7253 // that the maximum scale could not be computed. | 7276 // that the maximum scale could not be computed. |
7254 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); | 7277 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); |
7255 EXPECT_EQ( | 7278 EXPECT_EQ( |
7256 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); | 7279 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); |
7257 | 7280 |
7258 EXPECT_EQ( | 7281 EXPECT_EQ( |
7259 1.f, | 7282 1.f, |
7260 grand_parent_raw->draw_properties().starting_animation_contents_scale); | 7283 grand_parent_raw->draw_properties().starting_animation_contents_scale); |
7261 EXPECT_EQ(1.f, | 7284 EXPECT_EQ(1.f, |
7262 parent_raw->draw_properties().starting_animation_contents_scale); | 7285 parent_raw->draw_properties().starting_animation_contents_scale); |
7263 EXPECT_EQ(0.f, | 7286 EXPECT_EQ(0.f, |
7264 child_raw->draw_properties().starting_animation_contents_scale); | 7287 child_raw->draw_properties().starting_animation_contents_scale); |
7265 EXPECT_EQ( | 7288 EXPECT_EQ( |
7266 0.f, | 7289 0.f, |
7267 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7290 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7268 | 7291 |
7269 AddAnimatedTransformToLayerWithPlayer(parent_raw->id(), timeline, 1.0, | 7292 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, |
7270 TransformOperations(), scale); | 7293 1.0, TransformOperations(), scale); |
7271 parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7294 parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7272 ExecuteCalculateDrawProperties(grand_parent_raw); | 7295 ExecuteCalculateDrawProperties(grand_parent_raw); |
7273 | 7296 |
7274 // |grand_parent|, |parent|, and |child| have scale-affecting animations. | 7297 // |grand_parent|, |parent|, and |child| have scale-affecting animations. |
7275 EXPECT_EQ( | 7298 EXPECT_EQ( |
7276 5.f, | 7299 5.f, |
7277 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7300 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7278 EXPECT_EQ(0.f, | 7301 EXPECT_EQ(0.f, |
7279 parent_raw->draw_properties().maximum_animation_contents_scale); | 7302 parent_raw->draw_properties().maximum_animation_contents_scale); |
7280 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); | 7303 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); |
7281 EXPECT_EQ( | 7304 EXPECT_EQ( |
7282 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); | 7305 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); |
7283 | 7306 |
7284 EXPECT_EQ( | 7307 EXPECT_EQ( |
7285 1.f, | 7308 1.f, |
7286 grand_parent_raw->draw_properties().starting_animation_contents_scale); | 7309 grand_parent_raw->draw_properties().starting_animation_contents_scale); |
7287 EXPECT_EQ(0.f, | 7310 EXPECT_EQ(0.f, |
7288 parent_raw->draw_properties().starting_animation_contents_scale); | 7311 parent_raw->draw_properties().starting_animation_contents_scale); |
7289 EXPECT_EQ(0.f, | 7312 EXPECT_EQ(0.f, |
7290 child_raw->draw_properties().starting_animation_contents_scale); | 7313 child_raw->draw_properties().starting_animation_contents_scale); |
7291 EXPECT_EQ( | 7314 EXPECT_EQ( |
7292 0.f, | 7315 0.f, |
7293 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7316 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7294 | 7317 |
7295 AbortAnimationsOnLayerWithPlayer(grand_parent_raw->id(), timeline, | 7318 AbortAnimationsOnElementWithPlayer(grand_parent_raw->element_id(), timeline, |
7296 TargetProperty::TRANSFORM); | 7319 TargetProperty::TRANSFORM); |
7297 AbortAnimationsOnLayerWithPlayer(parent_raw->id(), timeline, | 7320 AbortAnimationsOnElementWithPlayer(parent_raw->element_id(), timeline, |
7298 TargetProperty::TRANSFORM); | 7321 TargetProperty::TRANSFORM); |
7299 AbortAnimationsOnLayerWithPlayer(child_raw->id(), timeline, | 7322 AbortAnimationsOnElementWithPlayer(child_raw->element_id(), timeline, |
7300 TargetProperty::TRANSFORM); | 7323 TargetProperty::TRANSFORM); |
7301 | 7324 |
7302 TransformOperations perspective; | 7325 TransformOperations perspective; |
7303 perspective.AppendPerspective(10.f); | 7326 perspective.AppendPerspective(10.f); |
7304 | 7327 |
7305 AddAnimatedTransformToLayerWithPlayer(child_raw->id(), timeline, 1.0, | 7328 AddAnimatedTransformToElementWithPlayer(child_raw->element_id(), timeline, |
7306 TransformOperations(), perspective); | 7329 1.0, TransformOperations(), |
| 7330 perspective); |
7307 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7331 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7308 ExecuteCalculateDrawProperties(grand_parent_raw); | 7332 ExecuteCalculateDrawProperties(grand_parent_raw); |
7309 | 7333 |
7310 // |child| has a scale-affecting animation but computing the maximum of this | 7334 // |child| has a scale-affecting animation but computing the maximum of this |
7311 // animation is not supported. | 7335 // animation is not supported. |
7312 EXPECT_EQ( | 7336 EXPECT_EQ( |
7313 0.f, | 7337 0.f, |
7314 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7338 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7315 EXPECT_EQ(0.f, | 7339 EXPECT_EQ(0.f, |
7316 parent_raw->draw_properties().maximum_animation_contents_scale); | 7340 parent_raw->draw_properties().maximum_animation_contents_scale); |
7317 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); | 7341 EXPECT_EQ(0.f, child_raw->draw_properties().maximum_animation_contents_scale); |
7318 EXPECT_EQ( | 7342 EXPECT_EQ( |
7319 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); | 7343 0.f, grand_child_raw->draw_properties().maximum_animation_contents_scale); |
7320 | 7344 |
7321 EXPECT_EQ( | 7345 EXPECT_EQ( |
7322 0.f, | 7346 0.f, |
7323 grand_parent_raw->draw_properties().starting_animation_contents_scale); | 7347 grand_parent_raw->draw_properties().starting_animation_contents_scale); |
7324 EXPECT_EQ(0.f, | 7348 EXPECT_EQ(0.f, |
7325 parent_raw->draw_properties().starting_animation_contents_scale); | 7349 parent_raw->draw_properties().starting_animation_contents_scale); |
7326 EXPECT_EQ(0.f, | 7350 EXPECT_EQ(0.f, |
7327 child_raw->draw_properties().starting_animation_contents_scale); | 7351 child_raw->draw_properties().starting_animation_contents_scale); |
7328 EXPECT_EQ( | 7352 EXPECT_EQ( |
7329 0.f, | 7353 0.f, |
7330 grand_child_raw->draw_properties().starting_animation_contents_scale); | 7354 grand_child_raw->draw_properties().starting_animation_contents_scale); |
7331 | 7355 |
7332 AbortAnimationsOnLayerWithPlayer(child_raw->id(), timeline, | 7356 AbortAnimationsOnElementWithPlayer(child_raw->element_id(), timeline, |
7333 TargetProperty::TRANSFORM); | 7357 TargetProperty::TRANSFORM); |
7334 gfx::Transform scale_matrix; | 7358 gfx::Transform scale_matrix; |
7335 scale_matrix.Scale(1.f, 2.f); | 7359 scale_matrix.Scale(1.f, 2.f); |
7336 grand_parent_raw->SetTransform(scale_matrix); | 7360 grand_parent_raw->SetTransform(scale_matrix); |
7337 parent_raw->SetTransform(scale_matrix); | 7361 parent_raw->SetTransform(scale_matrix); |
7338 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7362 grand_parent_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7339 | 7363 |
7340 AddAnimatedTransformToLayerWithPlayer(parent_raw->id(), timeline, 1.0, | 7364 AddAnimatedTransformToElementWithPlayer(parent_raw->element_id(), timeline, |
7341 TransformOperations(), scale); | 7365 1.0, TransformOperations(), scale); |
7342 ExecuteCalculateDrawProperties(grand_parent_raw); | 7366 ExecuteCalculateDrawProperties(grand_parent_raw); |
7343 | 7367 |
7344 // |grand_parent| and |parent| each have scale 2.f. |parent| has a scale | 7368 // |grand_parent| and |parent| each have scale 2.f. |parent| has a scale |
7345 // animation with maximum scale 5.f. | 7369 // animation with maximum scale 5.f. |
7346 EXPECT_EQ( | 7370 EXPECT_EQ( |
7347 0.f, | 7371 0.f, |
7348 grand_parent_raw->draw_properties().maximum_animation_contents_scale); | 7372 grand_parent_raw->draw_properties().maximum_animation_contents_scale); |
7349 EXPECT_EQ(10.f, | 7373 EXPECT_EQ(10.f, |
7350 parent_raw->draw_properties().maximum_animation_contents_scale); | 7374 parent_raw->draw_properties().maximum_animation_contents_scale); |
7351 EXPECT_EQ(10.f, | 7375 EXPECT_EQ(10.f, |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7734 std::unique_ptr<LayerImpl> child2 = | 7758 std::unique_ptr<LayerImpl> child2 = |
7735 LayerImpl::Create(host_impl.active_tree(), 3); | 7759 LayerImpl::Create(host_impl.active_tree(), 3); |
7736 LayerImpl* child2_layer = child2.get(); | 7760 LayerImpl* child2_layer = child2.get(); |
7737 | 7761 |
7738 root->AddChild(std::move(child1)); | 7762 root->AddChild(std::move(child1)); |
7739 root->AddChild(std::move(child2)); | 7763 root->AddChild(std::move(child2)); |
7740 root->test_properties()->force_render_surface = true; | 7764 root->test_properties()->force_render_surface = true; |
7741 root->SetDrawsContent(true); | 7765 root->SetDrawsContent(true); |
7742 host_impl.active_tree()->SetRootLayer(std::move(root)); | 7766 host_impl.active_tree()->SetRootLayer(std::move(root)); |
7743 | 7767 |
| 7768 host_impl.active_tree()->SetElementIdsForTesting(); |
| 7769 |
7744 gfx::Transform identity_matrix, scale_transform_child1, | 7770 gfx::Transform identity_matrix, scale_transform_child1, |
7745 scale_transform_child2; | 7771 scale_transform_child2; |
7746 scale_transform_child1.Scale(2, 3); | 7772 scale_transform_child1.Scale(2, 3); |
7747 scale_transform_child2.Scale(4, 5); | 7773 scale_transform_child2.Scale(4, 5); |
7748 | 7774 |
7749 SetLayerPropertiesForTesting(root_layer, identity_matrix, gfx::Point3F(), | 7775 SetLayerPropertiesForTesting(root_layer, identity_matrix, gfx::Point3F(), |
7750 gfx::PointF(), gfx::Size(1, 1), true, false, | 7776 gfx::PointF(), gfx::Size(1, 1), true, false, |
7751 true); | 7777 true); |
7752 SetLayerPropertiesForTesting(child1_layer, scale_transform_child1, | 7778 SetLayerPropertiesForTesting(child1_layer, scale_transform_child1, |
7753 gfx::Point3F(), gfx::PointF(), gfx::Size(1, 1), | 7779 gfx::Point3F(), gfx::PointF(), gfx::Size(1, 1), |
(...skipping 10 matching lines...) Expand all Loading... |
7764 | 7790 |
7765 ExecuteCalculateDrawProperties(root_layer); | 7791 ExecuteCalculateDrawProperties(root_layer); |
7766 | 7792 |
7767 TransformOperations scale; | 7793 TransformOperations scale; |
7768 scale.AppendScale(5.f, 8.f, 3.f); | 7794 scale.AppendScale(5.f, 8.f, 3.f); |
7769 | 7795 |
7770 scoped_refptr<AnimationTimeline> timeline = | 7796 scoped_refptr<AnimationTimeline> timeline = |
7771 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); | 7797 AnimationTimeline::Create(AnimationIdProvider::NextTimelineId()); |
7772 host_impl.animation_host()->AddAnimationTimeline(timeline); | 7798 host_impl.animation_host()->AddAnimationTimeline(timeline); |
7773 | 7799 |
7774 AddAnimatedTransformToLayerWithPlayer(child2_layer->id(), timeline, 1.0, | |
7775 TransformOperations(), scale); | |
7776 | |
7777 SetLayerPropertiesForTesting(child2_layer, scale_transform_child2, | 7800 SetLayerPropertiesForTesting(child2_layer, scale_transform_child2, |
7778 gfx::Point3F(), gfx::PointF(), gfx::Size(1, 1), | 7801 gfx::Point3F(), gfx::PointF(), gfx::Size(1, 1), |
7779 true, false, false); | 7802 true, false, false); |
7780 child2_layer->SetDrawsContent(true); | 7803 child2_layer->SetDrawsContent(true); |
7781 | 7804 |
| 7805 AddAnimatedTransformToElementWithPlayer(child2_layer->element_id(), timeline, |
| 7806 1.0, TransformOperations(), scale); |
| 7807 |
7782 root_layer->layer_tree_impl()->property_trees()->needs_rebuild = true; | 7808 root_layer->layer_tree_impl()->property_trees()->needs_rebuild = true; |
7783 ExecuteCalculateDrawProperties(root_layer); | 7809 ExecuteCalculateDrawProperties(root_layer); |
7784 | 7810 |
7785 EXPECT_FLOAT_EQ(1.f, root_layer->GetIdealContentsScale()); | 7811 EXPECT_FLOAT_EQ(1.f, root_layer->GetIdealContentsScale()); |
7786 EXPECT_FLOAT_EQ(3.f, child1_layer->GetIdealContentsScale()); | 7812 EXPECT_FLOAT_EQ(3.f, child1_layer->GetIdealContentsScale()); |
7787 EXPECT_FLOAT_EQ(3.f, child1_layer->mask_layer()->GetIdealContentsScale()); | 7813 EXPECT_FLOAT_EQ(3.f, child1_layer->mask_layer()->GetIdealContentsScale()); |
7788 EXPECT_FLOAT_EQ(5.f, child2_layer->GetIdealContentsScale()); | 7814 EXPECT_FLOAT_EQ(5.f, child2_layer->GetIdealContentsScale()); |
7789 | 7815 |
7790 EXPECT_FLOAT_EQ( | 7816 EXPECT_FLOAT_EQ( |
7791 0.f, root_layer->draw_properties().maximum_animation_contents_scale); | 7817 0.f, root_layer->draw_properties().maximum_animation_contents_scale); |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8039 TEST_F(LayerTreeHostCommonTest, VisibleContentRectForAnimatedLayer) { | 8065 TEST_F(LayerTreeHostCommonTest, VisibleContentRectForAnimatedLayer) { |
8040 const gfx::Transform identity_matrix; | 8066 const gfx::Transform identity_matrix; |
8041 scoped_refptr<Layer> root = Layer::Create(); | 8067 scoped_refptr<Layer> root = Layer::Create(); |
8042 scoped_refptr<LayerWithForcedDrawsContent> animated = | 8068 scoped_refptr<LayerWithForcedDrawsContent> animated = |
8043 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 8069 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
8044 | 8070 |
8045 root->AddChild(animated); | 8071 root->AddChild(animated); |
8046 | 8072 |
8047 host()->SetRootLayer(root); | 8073 host()->SetRootLayer(root); |
8048 | 8074 |
| 8075 host()->SetElementIdsForTesting(); |
| 8076 |
8049 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), | 8077 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
8050 gfx::PointF(), gfx::Size(100, 100), true, false); | 8078 gfx::PointF(), gfx::Size(100, 100), true, false); |
8051 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), | 8079 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), |
8052 gfx::PointF(), gfx::Size(20, 20), true, false); | 8080 gfx::PointF(), gfx::Size(20, 20), true, false); |
8053 | 8081 |
8054 root->SetMasksToBounds(true); | 8082 root->SetMasksToBounds(true); |
8055 root->SetForceRenderSurfaceForTesting(true); | 8083 root->SetForceRenderSurfaceForTesting(true); |
8056 animated->SetOpacity(0.f); | 8084 animated->SetOpacity(0.f); |
8057 | 8085 |
8058 AddOpacityTransitionToLayerWithPlayer(animated->id(), timeline(), 10.0, 0.f, | 8086 AddOpacityTransitionToElementWithPlayer(animated->element_id(), timeline(), |
8059 1.f, false); | 8087 10.0, 0.f, 1.f, false); |
8060 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8088 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8061 | 8089 |
8062 EXPECT_FALSE(animated->visible_layer_rect_for_testing().IsEmpty()); | 8090 EXPECT_FALSE(animated->visible_layer_rect_for_testing().IsEmpty()); |
8063 } | 8091 } |
8064 | 8092 |
8065 TEST_F(LayerTreeHostCommonTest, | 8093 TEST_F(LayerTreeHostCommonTest, |
8066 VisibleContentRectForAnimatedLayerWithSingularTransform) { | 8094 VisibleContentRectForAnimatedLayerWithSingularTransform) { |
8067 const gfx::Transform identity_matrix; | 8095 const gfx::Transform identity_matrix; |
8068 scoped_refptr<Layer> root = Layer::Create(); | 8096 scoped_refptr<Layer> root = Layer::Create(); |
8069 scoped_refptr<Layer> clip = Layer::Create(); | 8097 scoped_refptr<Layer> clip = Layer::Create(); |
8070 scoped_refptr<LayerWithForcedDrawsContent> animated = | 8098 scoped_refptr<LayerWithForcedDrawsContent> animated = |
8071 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 8099 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
8072 scoped_refptr<LayerWithForcedDrawsContent> surface = | 8100 scoped_refptr<LayerWithForcedDrawsContent> surface = |
8073 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 8101 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
8074 scoped_refptr<LayerWithForcedDrawsContent> descendant_of_animation = | 8102 scoped_refptr<LayerWithForcedDrawsContent> descendant_of_animation = |
8075 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 8103 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
8076 | 8104 |
8077 root->AddChild(clip); | 8105 root->AddChild(clip); |
8078 clip->AddChild(animated); | 8106 clip->AddChild(animated); |
8079 animated->AddChild(surface); | 8107 animated->AddChild(surface); |
8080 surface->AddChild(descendant_of_animation); | 8108 surface->AddChild(descendant_of_animation); |
8081 | 8109 |
8082 clip->SetMasksToBounds(true); | 8110 clip->SetMasksToBounds(true); |
8083 surface->SetForceRenderSurfaceForTesting(true); | 8111 surface->SetForceRenderSurfaceForTesting(true); |
8084 | 8112 |
8085 host()->SetRootLayer(root); | 8113 host()->SetRootLayer(root); |
8086 | 8114 |
| 8115 host()->SetElementIdsForTesting(); |
| 8116 |
8087 gfx::Transform uninvertible_matrix; | 8117 gfx::Transform uninvertible_matrix; |
8088 uninvertible_matrix.Scale3d(6.f, 6.f, 0.f); | 8118 uninvertible_matrix.Scale3d(6.f, 6.f, 0.f); |
8089 | 8119 |
8090 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), | 8120 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
8091 gfx::PointF(), gfx::Size(100, 100), true, false); | 8121 gfx::PointF(), gfx::Size(100, 100), true, false); |
8092 SetLayerPropertiesForTesting(clip.get(), identity_matrix, gfx::Point3F(), | 8122 SetLayerPropertiesForTesting(clip.get(), identity_matrix, gfx::Point3F(), |
8093 gfx::PointF(), gfx::Size(10, 10), true, false); | 8123 gfx::PointF(), gfx::Size(10, 10), true, false); |
8094 SetLayerPropertiesForTesting(animated.get(), uninvertible_matrix, | 8124 SetLayerPropertiesForTesting(animated.get(), uninvertible_matrix, |
8095 gfx::Point3F(), gfx::PointF(), | 8125 gfx::Point3F(), gfx::PointF(), |
8096 gfx::Size(120, 120), true, false); | 8126 gfx::Size(120, 120), true, false); |
8097 SetLayerPropertiesForTesting(surface.get(), identity_matrix, gfx::Point3F(), | 8127 SetLayerPropertiesForTesting(surface.get(), identity_matrix, gfx::Point3F(), |
8098 gfx::PointF(), gfx::Size(100, 100), true, false); | 8128 gfx::PointF(), gfx::Size(100, 100), true, false); |
8099 SetLayerPropertiesForTesting(descendant_of_animation.get(), identity_matrix, | 8129 SetLayerPropertiesForTesting(descendant_of_animation.get(), identity_matrix, |
8100 gfx::Point3F(), gfx::PointF(), | 8130 gfx::Point3F(), gfx::PointF(), |
8101 gfx::Size(200, 200), true, false); | 8131 gfx::Size(200, 200), true, false); |
8102 | 8132 |
8103 TransformOperations start_transform_operations; | 8133 TransformOperations start_transform_operations; |
8104 start_transform_operations.AppendMatrix(uninvertible_matrix); | 8134 start_transform_operations.AppendMatrix(uninvertible_matrix); |
8105 TransformOperations end_transform_operations; | 8135 TransformOperations end_transform_operations; |
8106 | 8136 |
8107 AddAnimatedTransformToLayerWithPlayer(animated->id(), timeline(), 10.0, | 8137 SetElementIdsForTesting(); |
8108 start_transform_operations, | 8138 AddAnimatedTransformToElementWithPlayer(animated->element_id(), timeline(), |
8109 end_transform_operations); | 8139 10.0, start_transform_operations, |
| 8140 end_transform_operations); |
8110 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8141 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8111 | 8142 |
8112 // The animated layer has a singular transform and maps to a non-empty rect in | 8143 // The animated layer has a singular transform and maps to a non-empty rect in |
8113 // clipped target space, so is treated as fully visible. | 8144 // clipped target space, so is treated as fully visible. |
8114 EXPECT_EQ(gfx::Rect(120, 120), animated->visible_layer_rect_for_testing()); | 8145 EXPECT_EQ(gfx::Rect(120, 120), animated->visible_layer_rect_for_testing()); |
8115 | 8146 |
8116 // The singular transform on |animated| is flattened when inherited by | 8147 // The singular transform on |animated| is flattened when inherited by |
8117 // |surface|, and this happens to make it invertible. | 8148 // |surface|, and this happens to make it invertible. |
8118 EXPECT_EQ(gfx::Rect(2, 2), surface->visible_layer_rect_for_testing()); | 8149 EXPECT_EQ(gfx::Rect(2, 2), surface->visible_layer_rect_for_testing()); |
8119 EXPECT_EQ(gfx::Rect(2, 2), | 8150 EXPECT_EQ(gfx::Rect(2, 2), |
(...skipping 26 matching lines...) Expand all Loading... |
8146 LayerImpl* grandchild = AddChild<LayerImpl>(child); | 8177 LayerImpl* grandchild = AddChild<LayerImpl>(child); |
8147 | 8178 |
8148 gfx::Transform identity_transform; | 8179 gfx::Transform identity_transform; |
8149 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), | 8180 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), |
8150 gfx::PointF(), gfx::Size(50, 50), true, false); | 8181 gfx::PointF(), gfx::Size(50, 50), true, false); |
8151 SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), | 8182 SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), |
8152 gfx::PointF(), gfx::Size(50, 50), true, false); | 8183 gfx::PointF(), gfx::Size(50, 50), true, false); |
8153 SetLayerPropertiesForTesting(grandchild, identity_transform, gfx::Point3F(), | 8184 SetLayerPropertiesForTesting(grandchild, identity_transform, gfx::Point3F(), |
8154 gfx::PointF(), gfx::Size(50, 50), true, false); | 8185 gfx::PointF(), gfx::Size(50, 50), true, false); |
8155 | 8186 |
8156 AddAnimatedFilterToLayerWithPlayer(child->id(), timeline_impl(), 10.0, 0.1f, | 8187 SetElementIdsForTesting(); |
8157 0.2f); | 8188 AddAnimatedFilterToElementWithPlayer(child->element_id(), timeline_impl(), |
| 8189 10.0, 0.1f, 0.2f); |
8158 ExecuteCalculateDrawProperties(root); | 8190 ExecuteCalculateDrawProperties(root); |
8159 | 8191 |
8160 EXPECT_TRUE(root->has_render_surface()); | 8192 EXPECT_TRUE(root->has_render_surface()); |
8161 EXPECT_TRUE(child->has_render_surface()); | 8193 EXPECT_TRUE(child->has_render_surface()); |
8162 EXPECT_FALSE(grandchild->has_render_surface()); | 8194 EXPECT_FALSE(grandchild->has_render_surface()); |
8163 | 8195 |
8164 EXPECT_TRUE(root->filters().IsEmpty()); | 8196 EXPECT_TRUE(root->filters().IsEmpty()); |
8165 EXPECT_TRUE(child->filters().IsEmpty()); | 8197 EXPECT_TRUE(child->filters().IsEmpty()); |
8166 EXPECT_TRUE(grandchild->filters().IsEmpty()); | 8198 EXPECT_TRUE(grandchild->filters().IsEmpty()); |
8167 | 8199 |
(...skipping 10 matching lines...) Expand all Loading... |
8178 LayerImpl* grandchild = AddChild<LayerImpl>(child); | 8210 LayerImpl* grandchild = AddChild<LayerImpl>(child); |
8179 | 8211 |
8180 gfx::Transform identity_transform; | 8212 gfx::Transform identity_transform; |
8181 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), | 8213 SetLayerPropertiesForTesting(root, identity_transform, gfx::Point3F(), |
8182 gfx::PointF(), gfx::Size(50, 50), true, false); | 8214 gfx::PointF(), gfx::Size(50, 50), true, false); |
8183 SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), | 8215 SetLayerPropertiesForTesting(child, identity_transform, gfx::Point3F(), |
8184 gfx::PointF(), gfx::Size(50, 50), true, false); | 8216 gfx::PointF(), gfx::Size(50, 50), true, false); |
8185 SetLayerPropertiesForTesting(grandchild, identity_transform, gfx::Point3F(), | 8217 SetLayerPropertiesForTesting(grandchild, identity_transform, gfx::Point3F(), |
8186 gfx::PointF(), gfx::Size(50, 50), true, false); | 8218 gfx::PointF(), gfx::Size(50, 50), true, false); |
8187 | 8219 |
| 8220 SetElementIdsForTesting(); |
| 8221 |
8188 std::unique_ptr<KeyframedFilterAnimationCurve> curve( | 8222 std::unique_ptr<KeyframedFilterAnimationCurve> curve( |
8189 KeyframedFilterAnimationCurve::Create()); | 8223 KeyframedFilterAnimationCurve::Create()); |
8190 FilterOperations start_filters; | 8224 FilterOperations start_filters; |
8191 start_filters.Append(FilterOperation::CreateBrightnessFilter(0.1f)); | 8225 start_filters.Append(FilterOperation::CreateBrightnessFilter(0.1f)); |
8192 FilterOperations end_filters; | 8226 FilterOperations end_filters; |
8193 end_filters.Append(FilterOperation::CreateBrightnessFilter(0.3f)); | 8227 end_filters.Append(FilterOperation::CreateBrightnessFilter(0.3f)); |
8194 curve->AddKeyframe( | 8228 curve->AddKeyframe( |
8195 FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr)); | 8229 FilterKeyframe::Create(base::TimeDelta(), start_filters, nullptr)); |
8196 curve->AddKeyframe(FilterKeyframe::Create( | 8230 curve->AddKeyframe(FilterKeyframe::Create( |
8197 base::TimeDelta::FromMilliseconds(100), end_filters, nullptr)); | 8231 base::TimeDelta::FromMilliseconds(100), end_filters, nullptr)); |
8198 std::unique_ptr<Animation> animation = | 8232 std::unique_ptr<Animation> animation = |
8199 Animation::Create(std::move(curve), 0, 1, TargetProperty::FILTER); | 8233 Animation::Create(std::move(curve), 0, 1, TargetProperty::FILTER); |
8200 animation->set_fill_mode(Animation::FillMode::NONE); | 8234 animation->set_fill_mode(Animation::FillMode::NONE); |
8201 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 8235 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
8202 | 8236 |
8203 AddAnimationToLayerWithPlayer(child->id(), timeline_impl(), | 8237 AddAnimationToElementWithPlayer(child->element_id(), timeline_impl(), |
8204 std::move(animation)); | 8238 std::move(animation)); |
8205 ExecuteCalculateDrawProperties(root); | 8239 ExecuteCalculateDrawProperties(root); |
8206 | 8240 |
8207 EXPECT_TRUE(root->has_render_surface()); | 8241 EXPECT_TRUE(root->has_render_surface()); |
8208 EXPECT_TRUE(child->has_render_surface()); | 8242 EXPECT_TRUE(child->has_render_surface()); |
8209 EXPECT_FALSE(grandchild->has_render_surface()); | 8243 EXPECT_FALSE(grandchild->has_render_surface()); |
8210 | 8244 |
8211 EXPECT_TRUE(root->filters().IsEmpty()); | 8245 EXPECT_TRUE(root->filters().IsEmpty()); |
8212 EXPECT_TRUE(child->filters().IsEmpty()); | 8246 EXPECT_TRUE(child->filters().IsEmpty()); |
8213 EXPECT_TRUE(grandchild->filters().IsEmpty()); | 8247 EXPECT_TRUE(grandchild->filters().IsEmpty()); |
8214 | 8248 |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8556 gfx::PointF(), gfx::Size(10, 10), true, false); | 8590 gfx::PointF(), gfx::Size(10, 10), true, false); |
8557 SetLayerPropertiesForTesting(greatgrandchild.get(), identity, gfx::Point3F(), | 8591 SetLayerPropertiesForTesting(greatgrandchild.get(), identity, gfx::Point3F(), |
8558 gfx::PointF(), gfx::Size(10, 10), true, false); | 8592 gfx::PointF(), gfx::Size(10, 10), true, false); |
8559 | 8593 |
8560 root->AddChild(child); | 8594 root->AddChild(child); |
8561 child->AddChild(grandchild); | 8595 child->AddChild(grandchild); |
8562 grandchild->AddChild(greatgrandchild); | 8596 grandchild->AddChild(greatgrandchild); |
8563 | 8597 |
8564 host()->SetRootLayer(root); | 8598 host()->SetRootLayer(root); |
8565 | 8599 |
| 8600 host()->SetElementIdsForTesting(); |
| 8601 |
8566 // Check the non-skipped case. | 8602 // Check the non-skipped case. |
8567 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8603 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8568 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); | 8604 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); |
8569 | 8605 |
8570 // Now we will reset the visible rect from property trees for the grandchild, | 8606 // Now we will reset the visible rect from property trees for the grandchild, |
8571 // and we will configure |child| in several ways that should force the subtree | 8607 // and we will configure |child| in several ways that should force the subtree |
8572 // to be skipped. The visible content rect for |grandchild| should, therefore, | 8608 // to be skipped. The visible content rect for |grandchild| should, therefore, |
8573 // remain empty. | 8609 // remain empty. |
8574 grandchild->set_visible_layer_rect(gfx::Rect()); | 8610 grandchild->set_visible_layer_rect(gfx::Rect()); |
8575 gfx::Transform singular; | 8611 gfx::Transform singular; |
(...skipping 14 matching lines...) Expand all Loading... |
8590 child->SetTransform(zero_z_scale); | 8626 child->SetTransform(zero_z_scale); |
8591 | 8627 |
8592 // Add a transform animation with a start delay. Now, even though |child| has | 8628 // Add a transform animation with a start delay. Now, even though |child| has |
8593 // a singular transform, the subtree should still get processed. | 8629 // a singular transform, the subtree should still get processed. |
8594 int animation_id = 0; | 8630 int animation_id = 0; |
8595 std::unique_ptr<Animation> animation = Animation::Create( | 8631 std::unique_ptr<Animation> animation = Animation::Create( |
8596 std::unique_ptr<AnimationCurve>(new FakeTransformTransition(1.0)), | 8632 std::unique_ptr<AnimationCurve>(new FakeTransformTransition(1.0)), |
8597 animation_id, 1, TargetProperty::TRANSFORM); | 8633 animation_id, 1, TargetProperty::TRANSFORM); |
8598 animation->set_fill_mode(Animation::FillMode::NONE); | 8634 animation->set_fill_mode(Animation::FillMode::NONE); |
8599 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 8635 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
8600 AddAnimationToLayerWithPlayer(child->id(), timeline(), std::move(animation)); | 8636 AddAnimationToElementWithPlayer(child->element_id(), timeline(), |
| 8637 std::move(animation)); |
8601 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8638 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8602 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); | 8639 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); |
8603 grandchild->set_visible_layer_rect(gfx::Rect()); | 8640 grandchild->set_visible_layer_rect(gfx::Rect()); |
8604 | 8641 |
8605 RemoveAnimationFromLayerWithExistingPlayer(child->id(), timeline(), | 8642 RemoveAnimationFromElementWithExistingPlayer(child->element_id(), timeline(), |
8606 animation_id); | 8643 animation_id); |
8607 child->SetTransform(identity); | 8644 child->SetTransform(identity); |
8608 child->SetOpacity(0.f); | 8645 child->SetOpacity(0.f); |
8609 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8646 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8610 EXPECT_EQ(gfx::Rect(0, 0), grandchild->visible_layer_rect_for_testing()); | 8647 EXPECT_EQ(gfx::Rect(0, 0), grandchild->visible_layer_rect_for_testing()); |
8611 | 8648 |
8612 // Now, even though child has zero opacity, we will configure |grandchild| and | 8649 // Now, even though child has zero opacity, we will configure |grandchild| and |
8613 // |greatgrandchild| in several ways that should force the subtree to be | 8650 // |greatgrandchild| in several ways that should force the subtree to be |
8614 // processed anyhow. | 8651 // processed anyhow. |
8615 grandchild->RequestCopyOfOutput( | 8652 grandchild->RequestCopyOfOutput( |
8616 CopyOutputRequest::CreateBitmapRequest(base::Bind(&CopyOutputCallback))); | 8653 CopyOutputRequest::CreateBitmapRequest(base::Bind(&CopyOutputCallback))); |
8617 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8654 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8618 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); | 8655 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); |
8619 greatgrandchild->set_visible_layer_rect(gfx::Rect()); | 8656 greatgrandchild->set_visible_layer_rect(gfx::Rect()); |
8620 | 8657 |
8621 // Add an opacity animation with a start delay. | 8658 // Add an opacity animation with a start delay. |
8622 animation_id = 1; | 8659 animation_id = 1; |
8623 animation = Animation::Create( | 8660 animation = Animation::Create( |
8624 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), | 8661 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), |
8625 animation_id, 1, TargetProperty::OPACITY); | 8662 animation_id, 1, TargetProperty::OPACITY); |
8626 animation->set_fill_mode(Animation::FillMode::NONE); | 8663 animation->set_fill_mode(Animation::FillMode::NONE); |
8627 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 8664 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
8628 AddAnimationToLayerWithExistingPlayer(child->id(), timeline(), | 8665 AddAnimationToElementWithExistingPlayer(child->element_id(), timeline(), |
8629 std::move(animation)); | 8666 std::move(animation)); |
8630 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 8667 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
8631 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); | 8668 EXPECT_EQ(gfx::Rect(10, 10), grandchild->visible_layer_rect_for_testing()); |
8632 } | 8669 } |
8633 | 8670 |
8634 TEST_F(LayerTreeHostCommonTest, SkippingLayerImpl) { | 8671 TEST_F(LayerTreeHostCommonTest, SkippingLayerImpl) { |
8635 FakeImplTaskRunnerProvider task_runner_provider; | 8672 FakeImplTaskRunnerProvider task_runner_provider; |
8636 TestSharedBitmapManager shared_bitmap_manager; | 8673 TestSharedBitmapManager shared_bitmap_manager; |
8637 TestTaskGraphRunner task_graph_runner; | 8674 TestTaskGraphRunner task_graph_runner; |
8638 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 8675 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
8639 &task_graph_runner); | 8676 &task_graph_runner); |
(...skipping 24 matching lines...) Expand all Loading... |
8664 false); | 8701 false); |
8665 | 8702 |
8666 LayerImpl* root_ptr = root.get(); | 8703 LayerImpl* root_ptr = root.get(); |
8667 LayerImpl* child_ptr = child.get(); | 8704 LayerImpl* child_ptr = child.get(); |
8668 LayerImpl* grandchild_ptr = grandchild.get(); | 8705 LayerImpl* grandchild_ptr = grandchild.get(); |
8669 | 8706 |
8670 child->AddChild(std::move(grandchild)); | 8707 child->AddChild(std::move(grandchild)); |
8671 root->AddChild(std::move(child)); | 8708 root->AddChild(std::move(child)); |
8672 host_impl.active_tree()->SetRootLayer(std::move(root)); | 8709 host_impl.active_tree()->SetRootLayer(std::move(root)); |
8673 | 8710 |
| 8711 host_impl.active_tree()->SetElementIdsForTesting(); |
| 8712 |
8674 // Check the non-skipped case. | 8713 // Check the non-skipped case. |
8675 // ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); | 8714 // ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); |
8676 // EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); | 8715 // EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); |
8677 | 8716 |
8678 // Now we will reset the visible rect from property trees for the grandchild, | 8717 // Now we will reset the visible rect from property trees for the grandchild, |
8679 // and we will configure |child| in several ways that should force the subtree | 8718 // and we will configure |child| in several ways that should force the subtree |
8680 // to be skipped. The visible content rect for |grandchild| should, therefore, | 8719 // to be skipped. The visible content rect for |grandchild| should, therefore, |
8681 // remain empty. | 8720 // remain empty. |
8682 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); | 8721 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); |
8683 | 8722 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8759 TransformOperations operation; | 8798 TransformOperations operation; |
8760 operation.AppendMatrix(transform); | 8799 operation.AppendMatrix(transform); |
8761 curve->AddKeyframe( | 8800 curve->AddKeyframe( |
8762 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); | 8801 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); |
8763 curve->AddKeyframe(TransformKeyframe::Create( | 8802 curve->AddKeyframe(TransformKeyframe::Create( |
8764 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); | 8803 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); |
8765 std::unique_ptr<Animation> transform_animation( | 8804 std::unique_ptr<Animation> transform_animation( |
8766 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); | 8805 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); |
8767 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); | 8806 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); |
8768 host_impl.active_tree()->animation_host()->RegisterPlayerForElement( | 8807 host_impl.active_tree()->animation_host()->RegisterPlayerForElement( |
8769 root_ptr->id(), player.get()); | 8808 root_ptr->element_id(), player.get()); |
8770 host_impl.active_tree() | 8809 host_impl.active_tree() |
8771 ->animation_host() | 8810 ->animation_host() |
8772 ->GetElementAnimationsForElementId(root_ptr->id()) | 8811 ->GetElementAnimationsForElementId(root_ptr->element_id()) |
8773 ->AddAnimation(std::move(transform_animation)); | 8812 ->AddAnimation(std::move(transform_animation)); |
8774 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); | 8813 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); |
8775 child_ptr->SetScrollClipLayer(root_ptr->id()); | 8814 child_ptr->SetScrollClipLayer(root_ptr->id()); |
8776 root_ptr->SetTransform(singular); | 8815 root_ptr->SetTransform(singular); |
8777 child_ptr->SetTransform(singular); | 8816 child_ptr->SetTransform(singular); |
8778 root_ptr->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8817 root_ptr->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8779 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); | 8818 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); |
8780 EXPECT_EQ(gfx::Rect(0, 0), grandchild_ptr->visible_layer_rect()); | 8819 EXPECT_EQ(gfx::Rect(0, 0), grandchild_ptr->visible_layer_rect()); |
8781 | 8820 |
8782 host_impl.active_tree()->animation_host()->UnregisterPlayerForElement( | 8821 host_impl.active_tree()->animation_host()->UnregisterPlayerForElement( |
8783 root_ptr->id(), player.get()); | 8822 root_ptr->element_id(), player.get()); |
8784 } | 8823 } |
8785 | 8824 |
8786 TEST_F(LayerTreeHostCommonTest, LayerSkippingInSubtreeOfSingularTransform) { | 8825 TEST_F(LayerTreeHostCommonTest, LayerSkippingInSubtreeOfSingularTransform) { |
8787 LayerImpl* root = root_layer(); | 8826 LayerImpl* root = root_layer(); |
8788 LayerImpl* child = AddChild<LayerImpl>(root); | 8827 LayerImpl* child = AddChild<LayerImpl>(root); |
8789 LayerImpl* grand_child = AddChild<LayerImpl>(child); | 8828 LayerImpl* grand_child = AddChild<LayerImpl>(child); |
8790 | 8829 |
8791 gfx::Transform identity; | 8830 gfx::Transform identity; |
8792 SetLayerPropertiesForTesting(root, identity, gfx::Point3F(), gfx::PointF(), | 8831 SetLayerPropertiesForTesting(root, identity, gfx::Point3F(), gfx::PointF(), |
8793 gfx::Size(10, 10), true, false, true); | 8832 gfx::Size(10, 10), true, false, true); |
8794 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), | 8833 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), |
8795 gfx::Size(10, 10), true, false, false); | 8834 gfx::Size(10, 10), true, false, false); |
8796 SetLayerPropertiesForTesting(grand_child, identity, gfx::Point3F(), | 8835 SetLayerPropertiesForTesting(grand_child, identity, gfx::Point3F(), |
8797 gfx::PointF(), gfx::Size(10, 10), true, false, | 8836 gfx::PointF(), gfx::Size(10, 10), true, false, |
8798 false); | 8837 false); |
| 8838 SetElementIdsForTesting(); |
8799 | 8839 |
8800 gfx::Transform singular; | 8840 gfx::Transform singular; |
8801 singular.matrix().set(0, 0, 0); | 8841 singular.matrix().set(0, 0, 0); |
8802 singular.matrix().set(0, 1, 1); | 8842 singular.matrix().set(0, 1, 1); |
8803 | 8843 |
8804 child->SetTransform(singular); | 8844 child->SetTransform(singular); |
8805 child->SetDrawsContent(true); | 8845 child->SetDrawsContent(true); |
8806 grand_child->SetDrawsContent(true); | 8846 grand_child->SetDrawsContent(true); |
8807 | 8847 |
8808 std::unique_ptr<KeyframedTransformAnimationCurve> curve( | 8848 std::unique_ptr<KeyframedTransformAnimationCurve> curve( |
8809 KeyframedTransformAnimationCurve::Create()); | 8849 KeyframedTransformAnimationCurve::Create()); |
8810 TransformOperations start; | 8850 TransformOperations start; |
8811 start.AppendTranslate(1.f, 2.f, 3.f); | 8851 start.AppendTranslate(1.f, 2.f, 3.f); |
8812 gfx::Transform transform; | 8852 gfx::Transform transform; |
8813 transform.Scale3d(1.0, 2.0, 3.0); | 8853 transform.Scale3d(1.0, 2.0, 3.0); |
8814 TransformOperations operation; | 8854 TransformOperations operation; |
8815 operation.AppendMatrix(transform); | 8855 operation.AppendMatrix(transform); |
8816 curve->AddKeyframe( | 8856 curve->AddKeyframe( |
8817 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); | 8857 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); |
8818 curve->AddKeyframe(TransformKeyframe::Create( | 8858 curve->AddKeyframe(TransformKeyframe::Create( |
8819 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); | 8859 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); |
8820 std::unique_ptr<Animation> transform_animation( | 8860 std::unique_ptr<Animation> transform_animation( |
8821 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); | 8861 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); |
8822 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); | 8862 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); |
8823 host_impl()->active_tree()->animation_host()->RegisterPlayerForElement( | 8863 host_impl()->active_tree()->animation_host()->RegisterPlayerForElement( |
8824 grand_child->id(), player.get()); | 8864 grand_child->element_id(), player.get()); |
8825 host_impl() | 8865 host_impl() |
8826 ->active_tree() | 8866 ->active_tree() |
8827 ->animation_host() | 8867 ->animation_host() |
8828 ->GetElementAnimationsForElementId(grand_child->id()) | 8868 ->GetElementAnimationsForElementId(grand_child->element_id()) |
8829 ->AddAnimation(std::move(transform_animation)); | 8869 ->AddAnimation(std::move(transform_animation)); |
8830 | 8870 |
8831 ExecuteCalculateDrawProperties(root); | 8871 ExecuteCalculateDrawProperties(root); |
8832 EXPECT_EQ(gfx::Rect(0, 0), grand_child->visible_layer_rect()); | 8872 EXPECT_EQ(gfx::Rect(0, 0), grand_child->visible_layer_rect()); |
8833 EXPECT_EQ(gfx::Rect(0, 0), child->visible_layer_rect()); | 8873 EXPECT_EQ(gfx::Rect(0, 0), child->visible_layer_rect()); |
8834 | 8874 |
8835 host_impl()->active_tree()->animation_host()->UnregisterPlayerForElement( | 8875 host_impl()->active_tree()->animation_host()->UnregisterPlayerForElement( |
8836 grand_child->id(), player.get()); | 8876 grand_child->element_id(), player.get()); |
8837 } | 8877 } |
8838 | 8878 |
8839 TEST_F(LayerTreeHostCommonTest, SkippingPendingLayerImpl) { | 8879 TEST_F(LayerTreeHostCommonTest, SkippingPendingLayerImpl) { |
8840 FakeImplTaskRunnerProvider task_runner_provider; | 8880 FakeImplTaskRunnerProvider task_runner_provider; |
8841 TestSharedBitmapManager shared_bitmap_manager; | 8881 TestSharedBitmapManager shared_bitmap_manager; |
8842 TestTaskGraphRunner task_graph_runner; | 8882 TestTaskGraphRunner task_graph_runner; |
8843 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, | 8883 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &shared_bitmap_manager, |
8844 &task_graph_runner); | 8884 &task_graph_runner); |
8845 | 8885 |
8846 gfx::Transform identity; | 8886 gfx::Transform identity; |
(...skipping 22 matching lines...) Expand all Loading... |
8869 gfx::PointF(), gfx::Size(10, 10), true, false, | 8909 gfx::PointF(), gfx::Size(10, 10), true, false, |
8870 false); | 8910 false); |
8871 | 8911 |
8872 LayerImpl* root_ptr = root.get(); | 8912 LayerImpl* root_ptr = root.get(); |
8873 LayerImpl* grandchild_ptr = grandchild.get(); | 8913 LayerImpl* grandchild_ptr = grandchild.get(); |
8874 | 8914 |
8875 child->AddChild(std::move(grandchild)); | 8915 child->AddChild(std::move(grandchild)); |
8876 root->AddChild(std::move(child)); | 8916 root->AddChild(std::move(child)); |
8877 | 8917 |
8878 host_impl.pending_tree()->SetRootLayer(std::move(root)); | 8918 host_impl.pending_tree()->SetRootLayer(std::move(root)); |
| 8919 host_impl.pending_tree()->SetElementIdsForTesting(); |
8879 | 8920 |
8880 // Check the non-skipped case. | 8921 // Check the non-skipped case. |
8881 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); | 8922 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); |
8882 EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); | 8923 EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); |
8883 | 8924 |
8884 std::unique_ptr<KeyframedFloatAnimationCurve> curve( | 8925 std::unique_ptr<KeyframedFloatAnimationCurve> curve( |
8885 KeyframedFloatAnimationCurve::Create()); | 8926 KeyframedFloatAnimationCurve::Create()); |
8886 std::unique_ptr<TimingFunction> func = EaseTimingFunction::Create(); | 8927 std::unique_ptr<TimingFunction> func = EaseTimingFunction::Create(); |
8887 curve->AddKeyframe( | 8928 curve->AddKeyframe( |
8888 FloatKeyframe::Create(base::TimeDelta(), 0.9f, std::move(func))); | 8929 FloatKeyframe::Create(base::TimeDelta(), 0.9f, std::move(func))); |
8889 curve->AddKeyframe( | 8930 curve->AddKeyframe( |
8890 FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 0.3f, nullptr)); | 8931 FloatKeyframe::Create(base::TimeDelta::FromSecondsD(1.0), 0.3f, nullptr)); |
8891 std::unique_ptr<Animation> animation( | 8932 std::unique_ptr<Animation> animation( |
8892 Animation::Create(std::move(curve), 3, 3, TargetProperty::OPACITY)); | 8933 Animation::Create(std::move(curve), 3, 3, TargetProperty::OPACITY)); |
8893 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); | 8934 scoped_refptr<AnimationPlayer> player(AnimationPlayer::Create(1)); |
8894 host_impl.active_tree()->animation_host()->RegisterPlayerForElement( | 8935 host_impl.active_tree()->animation_host()->RegisterPlayerForElement( |
8895 root_ptr->id(), player.get()); | 8936 root_ptr->element_id(), player.get()); |
8896 host_impl.active_tree() | 8937 host_impl.active_tree() |
8897 ->animation_host() | 8938 ->animation_host() |
8898 ->GetElementAnimationsForElementId(root_ptr->id()) | 8939 ->GetElementAnimationsForElementId(root_ptr->element_id()) |
8899 ->AddAnimation(std::move(animation)); | 8940 ->AddAnimation(std::move(animation)); |
8900 root_ptr->test_properties()->opacity = 0.f; | 8941 root_ptr->test_properties()->opacity = 0.f; |
8901 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); | 8942 grandchild_ptr->set_visible_layer_rect(gfx::Rect()); |
8902 root_ptr->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8943 root_ptr->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8903 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); | 8944 ExecuteCalculateDrawPropertiesWithPropertyTrees(root_ptr); |
8904 EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); | 8945 EXPECT_EQ(gfx::Rect(10, 10), grandchild_ptr->visible_layer_rect()); |
8905 | 8946 |
8906 host_impl.active_tree()->animation_host()->UnregisterPlayerForElement( | 8947 host_impl.active_tree()->animation_host()->UnregisterPlayerForElement( |
8907 root_ptr->id(), player.get()); | 8948 root_ptr->element_id(), player.get()); |
8908 } | 8949 } |
8909 | 8950 |
8910 TEST_F(LayerTreeHostCommonTest, SkippingLayer) { | 8951 TEST_F(LayerTreeHostCommonTest, SkippingLayer) { |
8911 gfx::Transform identity; | 8952 gfx::Transform identity; |
8912 LayerImpl* root = root_layer(); | 8953 LayerImpl* root = root_layer(); |
8913 LayerImpl* child = AddChild<LayerImpl>(root); | 8954 LayerImpl* child = AddChild<LayerImpl>(root); |
8914 | 8955 |
8915 SetLayerPropertiesForTesting(root, identity, gfx::Point3F(), gfx::PointF(), | 8956 SetLayerPropertiesForTesting(root, identity, gfx::Point3F(), gfx::PointF(), |
8916 gfx::Size(100, 100), true, false, true); | 8957 gfx::Size(100, 100), true, false, true); |
8917 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), | 8958 SetLayerPropertiesForTesting(child, identity, gfx::Point3F(), gfx::PointF(), |
(...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9748 | 9789 |
9749 TEST_F(LayerTreeHostCommonTest, OpacityAnimationsTrackingTest) { | 9790 TEST_F(LayerTreeHostCommonTest, OpacityAnimationsTrackingTest) { |
9750 const gfx::Transform identity_matrix; | 9791 const gfx::Transform identity_matrix; |
9751 scoped_refptr<Layer> root = Layer::Create(); | 9792 scoped_refptr<Layer> root = Layer::Create(); |
9752 scoped_refptr<LayerWithForcedDrawsContent> animated = | 9793 scoped_refptr<LayerWithForcedDrawsContent> animated = |
9753 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 9794 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
9754 root->AddChild(animated); | 9795 root->AddChild(animated); |
9755 | 9796 |
9756 host()->SetRootLayer(root); | 9797 host()->SetRootLayer(root); |
9757 | 9798 |
| 9799 host()->SetElementIdsForTesting(); |
| 9800 |
9758 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), | 9801 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
9759 gfx::PointF(), gfx::Size(100, 100), true, false); | 9802 gfx::PointF(), gfx::Size(100, 100), true, false); |
9760 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), | 9803 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), |
9761 gfx::PointF(), gfx::Size(20, 20), true, false); | 9804 gfx::PointF(), gfx::Size(20, 20), true, false); |
9762 | 9805 |
9763 root->SetForceRenderSurfaceForTesting(true); | 9806 root->SetForceRenderSurfaceForTesting(true); |
9764 animated->SetOpacity(0.f); | 9807 animated->SetOpacity(0.f); |
9765 | 9808 |
9766 scoped_refptr<AnimationPlayer> player = | 9809 scoped_refptr<AnimationPlayer> player = |
9767 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); | 9810 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
9768 timeline()->AttachPlayer(player); | 9811 timeline()->AttachPlayer(player); |
9769 player->AttachElement(animated->id()); | 9812 |
| 9813 player->AttachElement(animated->element_id()); |
9770 | 9814 |
9771 int animation_id = 0; | 9815 int animation_id = 0; |
9772 std::unique_ptr<Animation> animation = Animation::Create( | 9816 std::unique_ptr<Animation> animation = Animation::Create( |
9773 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), | 9817 std::unique_ptr<AnimationCurve>(new FakeFloatTransition(1.0, 0.f, 1.f)), |
9774 animation_id, 1, TargetProperty::OPACITY); | 9818 animation_id, 1, TargetProperty::OPACITY); |
9775 animation->set_fill_mode(Animation::FillMode::NONE); | 9819 animation->set_fill_mode(Animation::FillMode::NONE); |
9776 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 9820 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
9777 Animation* animation_ptr = animation.get(); | 9821 Animation* animation_ptr = animation.get(); |
9778 AddAnimationToLayerWithExistingPlayer(animated->id(), timeline(), | 9822 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), |
9779 std::move(animation)); | 9823 std::move(animation)); |
9780 | 9824 |
9781 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 9825 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
9782 | 9826 |
9783 EffectTree& tree = root->layer_tree_host()->property_trees()->effect_tree; | 9827 EffectTree& tree = root->layer_tree_host()->property_trees()->effect_tree; |
9784 EffectNode* node = tree.Node(animated->effect_tree_index()); | 9828 EffectNode* node = tree.Node(animated->effect_tree_index()); |
9785 EXPECT_FALSE(node->data.is_currently_animating_opacity); | 9829 EXPECT_FALSE(node->data.is_currently_animating_opacity); |
9786 EXPECT_TRUE(node->data.has_potential_opacity_animation); | 9830 EXPECT_TRUE(node->data.has_potential_opacity_animation); |
9787 | 9831 |
9788 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); | 9832 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); |
9789 root->layer_tree_host()->AnimateLayers( | 9833 root->layer_tree_host()->AnimateLayers( |
(...skipping 10 matching lines...) Expand all Loading... |
9800 | 9844 |
9801 TEST_F(LayerTreeHostCommonTest, TransformAnimationsTrackingTest) { | 9845 TEST_F(LayerTreeHostCommonTest, TransformAnimationsTrackingTest) { |
9802 const gfx::Transform identity_matrix; | 9846 const gfx::Transform identity_matrix; |
9803 scoped_refptr<Layer> root = Layer::Create(); | 9847 scoped_refptr<Layer> root = Layer::Create(); |
9804 scoped_refptr<LayerWithForcedDrawsContent> animated = | 9848 scoped_refptr<LayerWithForcedDrawsContent> animated = |
9805 make_scoped_refptr(new LayerWithForcedDrawsContent()); | 9849 make_scoped_refptr(new LayerWithForcedDrawsContent()); |
9806 root->AddChild(animated); | 9850 root->AddChild(animated); |
9807 | 9851 |
9808 host()->SetRootLayer(root); | 9852 host()->SetRootLayer(root); |
9809 | 9853 |
| 9854 host()->SetElementIdsForTesting(); |
| 9855 |
9810 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), | 9856 SetLayerPropertiesForTesting(root.get(), identity_matrix, gfx::Point3F(), |
9811 gfx::PointF(), gfx::Size(100, 100), true, false); | 9857 gfx::PointF(), gfx::Size(100, 100), true, false); |
9812 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), | 9858 SetLayerPropertiesForTesting(animated.get(), identity_matrix, gfx::Point3F(), |
9813 gfx::PointF(), gfx::Size(20, 20), true, false); | 9859 gfx::PointF(), gfx::Size(20, 20), true, false); |
9814 | 9860 |
9815 root->SetForceRenderSurfaceForTesting(true); | 9861 root->SetForceRenderSurfaceForTesting(true); |
9816 | 9862 |
9817 scoped_refptr<AnimationPlayer> player = | 9863 scoped_refptr<AnimationPlayer> player = |
9818 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); | 9864 AnimationPlayer::Create(AnimationIdProvider::NextPlayerId()); |
9819 timeline()->AttachPlayer(player); | 9865 timeline()->AttachPlayer(player); |
9820 player->AttachElement(animated->id()); | 9866 player->AttachElement(animated->element_id()); |
9821 | 9867 |
9822 std::unique_ptr<KeyframedTransformAnimationCurve> curve( | 9868 std::unique_ptr<KeyframedTransformAnimationCurve> curve( |
9823 KeyframedTransformAnimationCurve::Create()); | 9869 KeyframedTransformAnimationCurve::Create()); |
9824 TransformOperations start; | 9870 TransformOperations start; |
9825 start.AppendTranslate(1.f, 2.f, 3.f); | 9871 start.AppendTranslate(1.f, 2.f, 3.f); |
9826 gfx::Transform transform; | 9872 gfx::Transform transform; |
9827 transform.Scale3d(1.0, 2.0, 3.0); | 9873 transform.Scale3d(1.0, 2.0, 3.0); |
9828 TransformOperations operation; | 9874 TransformOperations operation; |
9829 operation.AppendMatrix(transform); | 9875 operation.AppendMatrix(transform); |
9830 curve->AddKeyframe( | 9876 curve->AddKeyframe( |
9831 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); | 9877 TransformKeyframe::Create(base::TimeDelta(), start, nullptr)); |
9832 curve->AddKeyframe(TransformKeyframe::Create( | 9878 curve->AddKeyframe(TransformKeyframe::Create( |
9833 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); | 9879 base::TimeDelta::FromSecondsD(1.0), operation, nullptr)); |
9834 std::unique_ptr<Animation> animation( | 9880 std::unique_ptr<Animation> animation( |
9835 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); | 9881 Animation::Create(std::move(curve), 3, 3, TargetProperty::TRANSFORM)); |
9836 animation->set_fill_mode(Animation::FillMode::NONE); | 9882 animation->set_fill_mode(Animation::FillMode::NONE); |
9837 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); | 9883 animation->set_time_offset(base::TimeDelta::FromMilliseconds(-1000)); |
9838 Animation* animation_ptr = animation.get(); | 9884 Animation* animation_ptr = animation.get(); |
9839 AddAnimationToLayerWithExistingPlayer(animated->id(), timeline(), | 9885 AddAnimationToElementWithExistingPlayer(animated->element_id(), timeline(), |
9840 std::move(animation)); | 9886 std::move(animation)); |
9841 | 9887 |
9842 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); | 9888 ExecuteCalculateDrawPropertiesWithPropertyTrees(root.get()); |
9843 | 9889 |
9844 TransformTree& tree = | 9890 TransformTree& tree = |
9845 root->layer_tree_host()->property_trees()->transform_tree; | 9891 root->layer_tree_host()->property_trees()->transform_tree; |
9846 TransformNode* node = tree.Node(animated->transform_tree_index()); | 9892 TransformNode* node = tree.Node(animated->transform_tree_index()); |
9847 EXPECT_FALSE(node->data.is_currently_animating); | 9893 EXPECT_FALSE(node->data.is_currently_animating); |
9848 EXPECT_TRUE(node->data.has_potential_animation); | 9894 EXPECT_TRUE(node->data.has_potential_animation); |
9849 | 9895 |
9850 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); | 9896 animation_ptr->set_time_offset(base::TimeDelta::FromMilliseconds(0)); |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10086 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); | 10132 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); |
10087 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); | 10133 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); |
10088 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); | 10134 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); |
10089 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); | 10135 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); |
10090 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); | 10136 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); |
10091 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); | 10137 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); |
10092 } | 10138 } |
10093 | 10139 |
10094 } // namespace | 10140 } // namespace |
10095 } // namespace cc | 10141 } // namespace cc |
OLD | NEW |