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

Side by Side Diff: cc/trees/layer_tree_host_common_unittest.cc

Issue 2751783002: cc: Replace LayerIterator with iterator that walks layer list and effect tree (Closed)
Patch Set: Clean up #includes Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698