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> |
11 #include <set> | 11 #include <set> |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/memory/ptr_util.h" | 14 #include "base/memory/ptr_util.h" |
15 #include "cc/animation/animation_host.h" | 15 #include "cc/animation/animation_host.h" |
16 #include "cc/animation/animation_id_provider.h" | 16 #include "cc/animation/animation_id_provider.h" |
17 #include "cc/animation/animation_player.h" | 17 #include "cc/animation/animation_player.h" |
18 #include "cc/animation/keyframed_animation_curve.h" | 18 #include "cc/animation/keyframed_animation_curve.h" |
19 #include "cc/animation/transform_operations.h" | 19 #include "cc/animation/transform_operations.h" |
20 #include "cc/base/math_util.h" | 20 #include "cc/base/math_util.h" |
21 #include "cc/input/main_thread_scrolling_reason.h" | 21 #include "cc/input/main_thread_scrolling_reason.h" |
22 #include "cc/layers/content_layer_client.h" | 22 #include "cc/layers/content_layer_client.h" |
| 23 #include "cc/layers/effect_tree_layer_list_iterator.h" |
23 #include "cc/layers/layer.h" | 24 #include "cc/layers/layer.h" |
24 #include "cc/layers/layer_client.h" | 25 #include "cc/layers/layer_client.h" |
25 #include "cc/layers/layer_impl.h" | 26 #include "cc/layers/layer_impl.h" |
26 #include "cc/layers/layer_iterator.h" | |
27 #include "cc/layers/render_surface_impl.h" | 27 #include "cc/layers/render_surface_impl.h" |
28 #include "cc/layers/texture_layer_impl.h" | 28 #include "cc/layers/texture_layer_impl.h" |
29 #include "cc/output/copy_output_request.h" | 29 #include "cc/output/copy_output_request.h" |
30 #include "cc/output/copy_output_result.h" | 30 #include "cc/output/copy_output_result.h" |
31 #include "cc/test/animation_test_common.h" | 31 #include "cc/test/animation_test_common.h" |
32 #include "cc/test/fake_compositor_frame_sink.h" | 32 #include "cc/test/fake_compositor_frame_sink.h" |
33 #include "cc/test/fake_content_layer_client.h" | 33 #include "cc/test/fake_content_layer_client.h" |
34 #include "cc/test/fake_impl_task_runner_provider.h" | 34 #include "cc/test/fake_impl_task_runner_provider.h" |
35 #include "cc/test/fake_layer_tree_host.h" | 35 #include "cc/test/fake_layer_tree_host.h" |
36 #include "cc/test/fake_layer_tree_host_impl.h" | 36 #include "cc/test/fake_layer_tree_host_impl.h" |
(...skipping 6115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6152 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( | 6152 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
6153 root_layer, root_layer->bounds(), &render_surface_layer_list); | 6153 root_layer, root_layer->bounds(), &render_surface_layer_list); |
6154 inputs.can_render_to_separate_surface = true; | 6154 inputs.can_render_to_separate_surface = true; |
6155 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); | 6155 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
6156 | 6156 |
6157 EXPECT_EQ(2u, render_surface_layer_list.size()); | 6157 EXPECT_EQ(2u, render_surface_layer_list.size()); |
6158 | 6158 |
6159 int count_represents_target_render_surface = 0; | 6159 int count_represents_target_render_surface = 0; |
6160 int count_represents_contributing_render_surface = 0; | 6160 int count_represents_contributing_render_surface = 0; |
6161 int count_represents_itself = 0; | 6161 int count_represents_itself = 0; |
6162 LayerIterator end = LayerIterator::End(&render_surface_layer_list); | 6162 for (EffectTreeLayerListIterator it(host_impl.active_tree()); |
6163 for (LayerIterator it = LayerIterator::Begin(&render_surface_layer_list); | 6163 it.state() != EffectTreeLayerListIterator::State::END; ++it) { |
6164 it != end; ++it) { | 6164 if (it.state() == EffectTreeLayerListIterator::State::TARGET_SURFACE) { |
6165 if (it.represents_target_render_surface()) | |
6166 count_represents_target_render_surface++; | 6165 count_represents_target_render_surface++; |
6167 if (it.represents_contributing_render_surface()) | 6166 } else if (it.state() == |
| 6167 EffectTreeLayerListIterator::State::CONTRIBUTING_SURFACE) { |
6168 count_represents_contributing_render_surface++; | 6168 count_represents_contributing_render_surface++; |
6169 if (it.represents_itself()) | 6169 } else { |
6170 count_represents_itself++; | 6170 count_represents_itself++; |
| 6171 } |
6171 } | 6172 } |
6172 | 6173 |
6173 // Two render surfaces. | 6174 // Two render surfaces. |
6174 EXPECT_EQ(2, count_represents_target_render_surface); | 6175 EXPECT_EQ(2, count_represents_target_render_surface); |
6175 // Second render surface contributes to root render surface. | 6176 // Second render surface contributes to root render surface. |
6176 EXPECT_EQ(1, count_represents_contributing_render_surface); | 6177 EXPECT_EQ(1, count_represents_contributing_render_surface); |
6177 // All 4 layers represent itself. | 6178 // All 4 layers represent itself. |
6178 EXPECT_EQ(4, count_represents_itself); | 6179 EXPECT_EQ(4, count_represents_itself); |
6179 } | 6180 } |
6180 | 6181 |
6181 { | 6182 { |
6182 LayerImplList render_surface_layer_list; | 6183 LayerImplList render_surface_layer_list; |
6183 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( | 6184 LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
6184 root_layer, root_layer->bounds(), &render_surface_layer_list); | 6185 root_layer, root_layer->bounds(), &render_surface_layer_list); |
6185 inputs.can_render_to_separate_surface = false; | 6186 inputs.can_render_to_separate_surface = false; |
6186 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); | 6187 LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
6187 | 6188 |
6188 EXPECT_EQ(1u, render_surface_layer_list.size()); | 6189 EXPECT_EQ(1u, render_surface_layer_list.size()); |
6189 | 6190 |
6190 int count_represents_target_render_surface = 0; | 6191 int count_represents_target_render_surface = 0; |
6191 int count_represents_contributing_render_surface = 0; | 6192 int count_represents_contributing_render_surface = 0; |
6192 int count_represents_itself = 0; | 6193 int count_represents_itself = 0; |
6193 LayerIterator end = LayerIterator::End(&render_surface_layer_list); | 6194 for (EffectTreeLayerListIterator it(host_impl.active_tree()); |
6194 for (LayerIterator it = LayerIterator::Begin(&render_surface_layer_list); | 6195 it.state() != EffectTreeLayerListIterator::State::END; ++it) { |
6195 it != end; ++it) { | 6196 if (it.state() == EffectTreeLayerListIterator::State::TARGET_SURFACE) { |
6196 if (it.represents_target_render_surface()) | |
6197 count_represents_target_render_surface++; | 6197 count_represents_target_render_surface++; |
6198 if (it.represents_contributing_render_surface()) | 6198 } else if (it.state() == |
| 6199 EffectTreeLayerListIterator::State::CONTRIBUTING_SURFACE) { |
6199 count_represents_contributing_render_surface++; | 6200 count_represents_contributing_render_surface++; |
6200 if (it.represents_itself()) | 6201 } else { |
6201 count_represents_itself++; | 6202 count_represents_itself++; |
| 6203 } |
6202 } | 6204 } |
6203 | 6205 |
6204 // Only root layer has a render surface. | 6206 // Only root layer has a render surface. |
6205 EXPECT_EQ(1, count_represents_target_render_surface); | 6207 EXPECT_EQ(1, count_represents_target_render_surface); |
6206 // No layer contributes a render surface to root render surface. | 6208 // No layer contributes a render surface to root render surface. |
6207 EXPECT_EQ(0, count_represents_contributing_render_surface); | 6209 EXPECT_EQ(0, count_represents_contributing_render_surface); |
6208 // All 4 layers represent itself. | 6210 // All 4 layers represent itself. |
6209 EXPECT_EQ(4, count_represents_itself); | 6211 EXPECT_EQ(4, count_represents_itself); |
6210 } | 6212 } |
6211 } | 6213 } |
(...skipping 2030 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8242 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); | 8244 EXPECT_EQ(0.f, GetMaximumAnimationScale(parent_raw)); |
8243 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); | 8245 EXPECT_EQ(0.f, GetMaximumAnimationScale(child_raw)); |
8244 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); | 8246 EXPECT_EQ(0.f, GetMaximumAnimationScale(grand_child_raw)); |
8245 | 8247 |
8246 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); | 8248 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_parent_raw)); |
8247 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); | 8249 EXPECT_EQ(0.f, GetStartingAnimationScale(parent_raw)); |
8248 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); | 8250 EXPECT_EQ(0.f, GetStartingAnimationScale(child_raw)); |
8249 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); | 8251 EXPECT_EQ(0.f, GetStartingAnimationScale(grand_child_raw)); |
8250 } | 8252 } |
8251 | 8253 |
8252 static void GatherDrawnLayers(const LayerImplList* rsll, | 8254 static void GatherDrawnLayers(LayerTreeImpl* tree_impl, |
8253 std::set<LayerImpl*>* drawn_layers) { | 8255 std::set<LayerImpl*>* drawn_layers) { |
8254 for (LayerIterator it = LayerIterator::Begin(rsll), | 8256 for (EffectTreeLayerListIterator it(tree_impl); |
8255 end = LayerIterator::End(rsll); | 8257 it.state() != EffectTreeLayerListIterator::State::END; ++it) { |
8256 it != end; ++it) { | 8258 if (it.state() == EffectTreeLayerListIterator::State::LAYER) |
8257 LayerImpl* layer = *it; | 8259 drawn_layers->insert(it.current_layer()); |
8258 if (it.represents_itself()) | |
8259 drawn_layers->insert(layer); | |
8260 | 8260 |
8261 if (!it.represents_contributing_render_surface()) | 8261 if (it.state() != EffectTreeLayerListIterator::State::CONTRIBUTING_SURFACE) |
8262 continue; | 8262 continue; |
8263 | 8263 |
8264 if (layer->GetRenderSurface()->MaskLayer()) | 8264 if (it.current_render_surface()->MaskLayer()) |
8265 drawn_layers->insert(layer->GetRenderSurface()->MaskLayer()); | 8265 drawn_layers->insert(it.current_render_surface()->MaskLayer()); |
8266 } | 8266 } |
8267 } | 8267 } |
8268 | 8268 |
8269 TEST_F(LayerTreeHostCommonTest, RenderSurfaceLayerListMembership) { | 8269 TEST_F(LayerTreeHostCommonTest, RenderSurfaceLayerListMembership) { |
8270 FakeImplTaskRunnerProvider task_runner_provider; | 8270 FakeImplTaskRunnerProvider task_runner_provider; |
8271 TestTaskGraphRunner task_graph_runner; | 8271 TestTaskGraphRunner task_graph_runner; |
8272 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); | 8272 FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner); |
8273 | 8273 |
8274 std::unique_ptr<LayerImpl> grand_parent = | 8274 std::unique_ptr<LayerImpl> grand_parent = |
8275 LayerImpl::Create(host_impl.active_tree(), 1); | 8275 LayerImpl::Create(host_impl.active_tree(), 1); |
(...skipping 28 matching lines...) Expand all Loading... |
8304 ExecuteCalculateDrawProperties(grand_parent_raw); | 8304 ExecuteCalculateDrawProperties(grand_parent_raw); |
8305 | 8305 |
8306 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8306 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8307 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8307 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8308 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8308 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8309 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8309 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8310 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8310 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8311 | 8311 |
8312 std::set<LayerImpl*> expected; | 8312 std::set<LayerImpl*> expected; |
8313 std::set<LayerImpl*> actual; | 8313 std::set<LayerImpl*> actual; |
8314 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8314 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8315 EXPECT_EQ(expected, actual); | 8315 EXPECT_EQ(expected, actual); |
8316 | 8316 |
8317 // If we force render surface, but none of the layers are in the layer list, | 8317 // If we force render surface, but none of the layers are in the layer list, |
8318 // then this layer should not appear in RSLL. | 8318 // then this layer should not appear in RSLL. |
8319 grand_child1_raw->test_properties()->force_render_surface = true; | 8319 grand_child1_raw->test_properties()->force_render_surface = true; |
8320 grand_child1_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8320 grand_child1_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8321 | 8321 |
8322 ExecuteCalculateDrawProperties(grand_parent_raw); | 8322 ExecuteCalculateDrawProperties(grand_parent_raw); |
8323 | 8323 |
8324 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8324 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8325 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8325 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8326 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8326 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8327 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8327 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8328 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8328 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8329 | 8329 |
8330 expected.clear(); | 8330 expected.clear(); |
8331 actual.clear(); | 8331 actual.clear(); |
8332 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8332 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8333 EXPECT_EQ(expected, actual); | 8333 EXPECT_EQ(expected, actual); |
8334 | 8334 |
8335 // However, if we say that this layer also draws content, it will appear in | 8335 // However, if we say that this layer also draws content, it will appear in |
8336 // RSLL. | 8336 // RSLL. |
8337 grand_child1_raw->SetDrawsContent(true); | 8337 grand_child1_raw->SetDrawsContent(true); |
8338 | 8338 |
8339 ExecuteCalculateDrawProperties(grand_parent_raw); | 8339 ExecuteCalculateDrawProperties(grand_parent_raw); |
8340 | 8340 |
8341 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8341 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8342 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8342 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8343 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8343 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8344 EXPECT_TRUE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8344 EXPECT_TRUE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8345 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8345 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8346 | 8346 |
8347 expected.clear(); | 8347 expected.clear(); |
8348 expected.insert(grand_child1_raw); | 8348 expected.insert(grand_child1_raw); |
8349 | 8349 |
8350 actual.clear(); | 8350 actual.clear(); |
8351 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8351 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8352 EXPECT_EQ(expected, actual); | 8352 EXPECT_EQ(expected, actual); |
8353 | 8353 |
8354 // Now child is forced to have a render surface, and one if its children draws | 8354 // Now child is forced to have a render surface, and one if its children draws |
8355 // content. | 8355 // content. |
8356 grand_child1_raw->SetDrawsContent(false); | 8356 grand_child1_raw->SetDrawsContent(false); |
8357 grand_child1_raw->test_properties()->force_render_surface = false; | 8357 grand_child1_raw->test_properties()->force_render_surface = false; |
8358 grand_child1_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8358 grand_child1_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8359 child_raw->test_properties()->force_render_surface = true; | 8359 child_raw->test_properties()->force_render_surface = true; |
8360 grand_child2_raw->SetDrawsContent(true); | 8360 grand_child2_raw->SetDrawsContent(true); |
8361 | 8361 |
8362 ExecuteCalculateDrawProperties(grand_parent_raw); | 8362 ExecuteCalculateDrawProperties(grand_parent_raw); |
8363 | 8363 |
8364 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8364 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8365 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8365 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8366 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8366 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8367 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8367 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8368 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8368 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8369 | 8369 |
8370 expected.clear(); | 8370 expected.clear(); |
8371 expected.insert(grand_child2_raw); | 8371 expected.insert(grand_child2_raw); |
8372 | 8372 |
8373 actual.clear(); | 8373 actual.clear(); |
8374 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8374 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8375 EXPECT_EQ(expected, actual); | 8375 EXPECT_EQ(expected, actual); |
8376 | 8376 |
8377 // Add a mask layer to child. | 8377 // Add a mask layer to child. |
8378 child_raw->test_properties()->SetMaskLayer( | 8378 child_raw->test_properties()->SetMaskLayer( |
8379 LayerImpl::Create(host_impl.active_tree(), 6)); | 8379 LayerImpl::Create(host_impl.active_tree(), 6)); |
8380 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8380 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8381 | 8381 |
8382 ExecuteCalculateDrawProperties(grand_parent_raw); | 8382 ExecuteCalculateDrawProperties(grand_parent_raw); |
8383 | 8383 |
8384 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8384 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8385 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8385 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8386 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8386 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8387 EXPECT_TRUE(child_raw->test_properties() | 8387 EXPECT_TRUE(child_raw->test_properties() |
8388 ->mask_layer->is_drawn_render_surface_layer_list_member()); | 8388 ->mask_layer->is_drawn_render_surface_layer_list_member()); |
8389 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8389 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8390 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8390 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8391 | 8391 |
8392 expected.clear(); | 8392 expected.clear(); |
8393 expected.insert(grand_child2_raw); | 8393 expected.insert(grand_child2_raw); |
8394 expected.insert(child_raw->test_properties()->mask_layer); | 8394 expected.insert(child_raw->test_properties()->mask_layer); |
8395 | 8395 |
8396 expected.clear(); | 8396 expected.clear(); |
8397 expected.insert(grand_child2_raw); | 8397 expected.insert(grand_child2_raw); |
8398 expected.insert(child_raw->test_properties()->mask_layer); | 8398 expected.insert(child_raw->test_properties()->mask_layer); |
8399 | 8399 |
8400 actual.clear(); | 8400 actual.clear(); |
8401 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8401 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8402 EXPECT_EQ(expected, actual); | 8402 EXPECT_EQ(expected, actual); |
8403 | 8403 |
8404 ExecuteCalculateDrawProperties(grand_parent_raw); | 8404 ExecuteCalculateDrawProperties(grand_parent_raw); |
8405 | 8405 |
8406 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8406 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8407 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8407 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8408 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8408 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8409 EXPECT_TRUE(child_raw->test_properties() | 8409 EXPECT_TRUE(child_raw->test_properties() |
8410 ->mask_layer->is_drawn_render_surface_layer_list_member()); | 8410 ->mask_layer->is_drawn_render_surface_layer_list_member()); |
8411 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8411 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8412 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8412 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8413 | 8413 |
8414 expected.clear(); | 8414 expected.clear(); |
8415 expected.insert(grand_child2_raw); | 8415 expected.insert(grand_child2_raw); |
8416 expected.insert(child_raw->test_properties()->mask_layer); | 8416 expected.insert(child_raw->test_properties()->mask_layer); |
8417 | 8417 |
8418 actual.clear(); | 8418 actual.clear(); |
8419 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8419 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8420 EXPECT_EQ(expected, actual); | 8420 EXPECT_EQ(expected, actual); |
8421 | 8421 |
8422 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8422 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8423 | 8423 |
8424 // With nothing drawing, we should have no layers. | 8424 // With nothing drawing, we should have no layers. |
8425 grand_child2_raw->SetDrawsContent(false); | 8425 grand_child2_raw->SetDrawsContent(false); |
8426 | 8426 |
8427 ExecuteCalculateDrawProperties(grand_parent_raw); | 8427 ExecuteCalculateDrawProperties(grand_parent_raw); |
8428 | 8428 |
8429 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8429 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8430 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8430 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8431 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); | 8431 EXPECT_FALSE(child_raw->is_drawn_render_surface_layer_list_member()); |
8432 EXPECT_FALSE(child_raw->test_properties() | 8432 EXPECT_FALSE(child_raw->test_properties() |
8433 ->mask_layer->is_drawn_render_surface_layer_list_member()); | 8433 ->mask_layer->is_drawn_render_surface_layer_list_member()); |
8434 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8434 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8435 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8435 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8436 | 8436 |
8437 expected.clear(); | 8437 expected.clear(); |
8438 actual.clear(); | 8438 actual.clear(); |
8439 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8439 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8440 EXPECT_EQ(expected, actual); | 8440 EXPECT_EQ(expected, actual); |
8441 | 8441 |
8442 // Child itself draws means that we should have the child and the mask in the | 8442 // Child itself draws means that we should have the child and the mask in the |
8443 // list. | 8443 // list. |
8444 child_raw->SetDrawsContent(true); | 8444 child_raw->SetDrawsContent(true); |
8445 | 8445 |
8446 ExecuteCalculateDrawProperties(grand_parent_raw); | 8446 ExecuteCalculateDrawProperties(grand_parent_raw); |
8447 | 8447 |
8448 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8448 EXPECT_FALSE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8449 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8449 EXPECT_FALSE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8450 EXPECT_TRUE(child_raw->is_drawn_render_surface_layer_list_member()); | 8450 EXPECT_TRUE(child_raw->is_drawn_render_surface_layer_list_member()); |
8451 EXPECT_TRUE(child_raw->test_properties() | 8451 EXPECT_TRUE(child_raw->test_properties() |
8452 ->mask_layer->is_drawn_render_surface_layer_list_member()); | 8452 ->mask_layer->is_drawn_render_surface_layer_list_member()); |
8453 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8453 EXPECT_FALSE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8454 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8454 EXPECT_FALSE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8455 | 8455 |
8456 expected.clear(); | 8456 expected.clear(); |
8457 expected.insert(child_raw); | 8457 expected.insert(child_raw); |
8458 expected.insert(child_raw->test_properties()->mask_layer); | 8458 expected.insert(child_raw->test_properties()->mask_layer); |
8459 actual.clear(); | 8459 actual.clear(); |
8460 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8460 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8461 EXPECT_EQ(expected, actual); | 8461 EXPECT_EQ(expected, actual); |
8462 | 8462 |
8463 child_raw->test_properties()->SetMaskLayer(nullptr); | 8463 child_raw->test_properties()->SetMaskLayer(nullptr); |
8464 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; | 8464 child_raw->layer_tree_impl()->property_trees()->needs_rebuild = true; |
8465 | 8465 |
8466 // Now everyone's a member! | 8466 // Now everyone's a member! |
8467 grand_parent_raw->SetDrawsContent(true); | 8467 grand_parent_raw->SetDrawsContent(true); |
8468 parent_raw->SetDrawsContent(true); | 8468 parent_raw->SetDrawsContent(true); |
8469 child_raw->SetDrawsContent(true); | 8469 child_raw->SetDrawsContent(true); |
8470 grand_child1_raw->SetDrawsContent(true); | 8470 grand_child1_raw->SetDrawsContent(true); |
8471 grand_child2_raw->SetDrawsContent(true); | 8471 grand_child2_raw->SetDrawsContent(true); |
8472 | 8472 |
8473 ExecuteCalculateDrawProperties(grand_parent_raw); | 8473 ExecuteCalculateDrawProperties(grand_parent_raw); |
8474 | 8474 |
8475 EXPECT_TRUE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); | 8475 EXPECT_TRUE(grand_parent_raw->is_drawn_render_surface_layer_list_member()); |
8476 EXPECT_TRUE(parent_raw->is_drawn_render_surface_layer_list_member()); | 8476 EXPECT_TRUE(parent_raw->is_drawn_render_surface_layer_list_member()); |
8477 EXPECT_TRUE(child_raw->is_drawn_render_surface_layer_list_member()); | 8477 EXPECT_TRUE(child_raw->is_drawn_render_surface_layer_list_member()); |
8478 EXPECT_TRUE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); | 8478 EXPECT_TRUE(grand_child1_raw->is_drawn_render_surface_layer_list_member()); |
8479 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); | 8479 EXPECT_TRUE(grand_child2_raw->is_drawn_render_surface_layer_list_member()); |
8480 | 8480 |
8481 expected.clear(); | 8481 expected.clear(); |
8482 expected.insert(grand_parent_raw); | 8482 expected.insert(grand_parent_raw); |
8483 expected.insert(parent_raw); | 8483 expected.insert(parent_raw); |
8484 expected.insert(child_raw); | 8484 expected.insert(child_raw); |
8485 expected.insert(grand_child1_raw); | 8485 expected.insert(grand_child1_raw); |
8486 expected.insert(grand_child2_raw); | 8486 expected.insert(grand_child2_raw); |
8487 | 8487 |
8488 actual.clear(); | 8488 actual.clear(); |
8489 GatherDrawnLayers(render_surface_layer_list_impl(), &actual); | 8489 GatherDrawnLayers(host_impl.active_tree(), &actual); |
8490 EXPECT_EQ(expected, actual); | 8490 EXPECT_EQ(expected, actual); |
8491 } | 8491 } |
8492 | 8492 |
8493 TEST_F(LayerTreeHostCommonTest, DrawPropertyScales) { | 8493 TEST_F(LayerTreeHostCommonTest, DrawPropertyScales) { |
8494 FakeImplTaskRunnerProvider task_runner_provider; | 8494 FakeImplTaskRunnerProvider task_runner_provider; |
8495 TestTaskGraphRunner task_graph_runner; | 8495 TestTaskGraphRunner task_graph_runner; |
8496 LayerTreeSettings settings = host()->GetSettings(); | 8496 LayerTreeSettings settings = host()->GetSettings(); |
8497 settings.layer_transforms_should_scale_layer_contents = true; | 8497 settings.layer_transforms_should_scale_layer_contents = true; |
8498 FakeLayerTreeHostImpl host_impl(settings, &task_runner_provider, | 8498 FakeLayerTreeHostImpl host_impl(settings, &task_runner_provider, |
8499 &task_graph_runner); | 8499 &task_graph_runner); |
(...skipping 2227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10727 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); | 10727 EXPECT_EQ(scroll_child6.id, grand_child10->scroll_tree_index()); |
10728 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); | 10728 EXPECT_EQ(scroll_root1.id, parent3->scroll_tree_index()); |
10729 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); | 10729 EXPECT_EQ(scroll_child7.id, child8->scroll_tree_index()); |
10730 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); | 10730 EXPECT_EQ(scroll_root1.id, parent4->scroll_tree_index()); |
10731 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); | 10731 EXPECT_EQ(scroll_root1.id, child9->scroll_tree_index()); |
10732 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); | 10732 EXPECT_EQ(scroll_root1.id, grand_child12->scroll_tree_index()); |
10733 } | 10733 } |
10734 | 10734 |
10735 } // namespace | 10735 } // namespace |
10736 } // namespace cc | 10736 } // namespace cc |
OLD | NEW |