| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/picture_layer.h" | 5 #include "cc/layers/picture_layer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 | 234 |
| 235 FakeLayerTreeHostClient host_client; | 235 FakeLayerTreeHostClient host_client; |
| 236 TestTaskGraphRunner task_graph_runner; | 236 TestTaskGraphRunner task_graph_runner; |
| 237 std::unique_ptr<FakeLayerTreeHost> host = | 237 std::unique_ptr<FakeLayerTreeHost> host = |
| 238 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); | 238 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); |
| 239 host->GetLayerTree()->SetRootLayer(layer); | 239 host->GetLayerTree()->SetRootLayer(layer); |
| 240 layer->SetIsDrawable(true); | 240 layer->SetIsDrawable(true); |
| 241 layer->SavePaintProperties(); | 241 layer->SavePaintProperties(); |
| 242 layer->Update(); | 242 layer->Update(); |
| 243 | 243 |
| 244 EXPECT_EQ(0, host->source_frame_number()); | 244 EXPECT_EQ(0, host->SourceFrameNumber()); |
| 245 host->CommitComplete(); | 245 host->CommitComplete(); |
| 246 EXPECT_EQ(1, host->source_frame_number()); | 246 EXPECT_EQ(1, host->SourceFrameNumber()); |
| 247 | 247 |
| 248 layer->SetBounds(gfx::Size(0, 0)); | 248 layer->SetBounds(gfx::Size(0, 0)); |
| 249 layer->SavePaintProperties(); | 249 layer->SavePaintProperties(); |
| 250 // Intentionally skipping Update since it would normally be skipped on | 250 // Intentionally skipping Update since it would normally be skipped on |
| 251 // a layer with empty bounds. | 251 // a layer with empty bounds. |
| 252 | 252 |
| 253 FakeImplTaskRunnerProvider impl_task_runner_provider; | 253 FakeImplTaskRunnerProvider impl_task_runner_provider; |
| 254 | 254 |
| 255 TestSharedBitmapManager shared_bitmap_manager; | 255 TestSharedBitmapManager shared_bitmap_manager; |
| 256 std::unique_ptr<FakeOutputSurface> output_surface = | 256 std::unique_ptr<FakeOutputSurface> output_surface = |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 | 369 |
| 370 FakeLayerTreeHostClient host_client; | 370 FakeLayerTreeHostClient host_client; |
| 371 TestTaskGraphRunner task_graph_runner; | 371 TestTaskGraphRunner task_graph_runner; |
| 372 std::unique_ptr<FakeLayerTreeHost> host = | 372 std::unique_ptr<FakeLayerTreeHost> host = |
| 373 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); | 373 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); |
| 374 host->GetLayerTree()->SetRootLayer(layer); | 374 host->GetLayerTree()->SetRootLayer(layer); |
| 375 layer->SetIsDrawable(true); | 375 layer->SetIsDrawable(true); |
| 376 layer->SavePaintProperties(); | 376 layer->SavePaintProperties(); |
| 377 layer->Update(); | 377 layer->Update(); |
| 378 | 378 |
| 379 EXPECT_EQ(0, host->source_frame_number()); | 379 EXPECT_EQ(0, host->SourceFrameNumber()); |
| 380 host->CommitComplete(); | 380 host->CommitComplete(); |
| 381 EXPECT_EQ(1, host->source_frame_number()); | 381 EXPECT_EQ(1, host->SourceFrameNumber()); |
| 382 | 382 |
| 383 layer->SavePaintProperties(); | 383 layer->SavePaintProperties(); |
| 384 layer->Update(); | 384 layer->Update(); |
| 385 | 385 |
| 386 FakeImplTaskRunnerProvider impl_task_runner_provider; | 386 FakeImplTaskRunnerProvider impl_task_runner_provider; |
| 387 | 387 |
| 388 TestSharedBitmapManager shared_bitmap_manager; | 388 TestSharedBitmapManager shared_bitmap_manager; |
| 389 std::unique_ptr<OutputSurface> output_surface( | 389 std::unique_ptr<OutputSurface> output_surface( |
| 390 FakeOutputSurface::CreateDelegating3d()); | 390 FakeOutputSurface::CreateDelegating3d()); |
| 391 LayerTreeSettings layer_tree_settings = LayerTreeSettingsForTesting(); | 391 LayerTreeSettings layer_tree_settings = LayerTreeSettingsForTesting(); |
| 392 layer_tree_settings.image_decode_tasks_enabled = true; | 392 layer_tree_settings.image_decode_tasks_enabled = true; |
| 393 FakeLayerTreeHostImpl host_impl(layer_tree_settings, | 393 FakeLayerTreeHostImpl host_impl(layer_tree_settings, |
| 394 &impl_task_runner_provider, | 394 &impl_task_runner_provider, |
| 395 &shared_bitmap_manager, &task_graph_runner); | 395 &shared_bitmap_manager, &task_graph_runner); |
| 396 host_impl.SetVisible(true); | 396 host_impl.SetVisible(true); |
| 397 EXPECT_TRUE(host_impl.InitializeRenderer(output_surface.get())); | 397 EXPECT_TRUE(host_impl.InitializeRenderer(output_surface.get())); |
| 398 | 398 |
| 399 host_impl.CreatePendingTree(); | 399 host_impl.CreatePendingTree(); |
| 400 host_impl.pending_tree()->SetRootLayerForTesting( | 400 host_impl.pending_tree()->SetRootLayerForTesting( |
| 401 FakePictureLayerImpl::Create(host_impl.pending_tree(), 1)); | 401 FakePictureLayerImpl::Create(host_impl.pending_tree(), 1)); |
| 402 host_impl.pending_tree()->BuildLayerListForTesting(); | 402 host_impl.pending_tree()->BuildLayerListForTesting(); |
| 403 | 403 |
| 404 FakePictureLayerImpl* layer_impl = static_cast<FakePictureLayerImpl*>( | 404 FakePictureLayerImpl* layer_impl = static_cast<FakePictureLayerImpl*>( |
| 405 host_impl.pending_tree()->root_layer_for_testing()); | 405 host_impl.pending_tree()->root_layer_for_testing()); |
| 406 | 406 |
| 407 layer->PushPropertiesTo(layer_impl); | 407 layer->PushPropertiesTo(layer_impl); |
| 408 | 408 |
| 409 host->CommitComplete(); | 409 host->CommitComplete(); |
| 410 EXPECT_EQ(2, host->source_frame_number()); | 410 EXPECT_EQ(2, host->SourceFrameNumber()); |
| 411 | 411 |
| 412 host_impl.ActivateSyncTree(); | 412 host_impl.ActivateSyncTree(); |
| 413 | 413 |
| 414 // By updating the draw proprties on the active tree, we will set the viewport | 414 // By updating the draw proprties on the active tree, we will set the viewport |
| 415 // rect for tile priorities to something non-empty. | 415 // rect for tile priorities to something non-empty. |
| 416 const bool can_use_lcd_text = false; | 416 const bool can_use_lcd_text = false; |
| 417 host_impl.active_tree()->BuildPropertyTreesForTesting(); | 417 host_impl.active_tree()->BuildPropertyTreesForTesting(); |
| 418 host_impl.active_tree()->UpdateDrawProperties(can_use_lcd_text); | 418 host_impl.active_tree()->UpdateDrawProperties(can_use_lcd_text); |
| 419 | 419 |
| 420 layer->SetBounds(gfx::Size(11, 11)); | 420 layer->SetBounds(gfx::Size(11, 11)); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 host2->SetVisible(true); | 524 host2->SetVisible(true); |
| 525 host_client2.SetLayerTreeHost(host2.get()); | 525 host_client2.SetLayerTreeHost(host2.get()); |
| 526 | 526 |
| 527 // The PictureLayer is put in one LayerTreeHost. | 527 // The PictureLayer is put in one LayerTreeHost. |
| 528 host1->GetLayerTree()->SetRootLayer(layer); | 528 host1->GetLayerTree()->SetRootLayer(layer); |
| 529 // Do a main frame, record the picture layers. | 529 // Do a main frame, record the picture layers. |
| 530 EXPECT_EQ(0, layer->update_count()); | 530 EXPECT_EQ(0, layer->update_count()); |
| 531 layer->SetNeedsDisplay(); | 531 layer->SetNeedsDisplay(); |
| 532 host1->Composite(base::TimeTicks::Now()); | 532 host1->Composite(base::TimeTicks::Now()); |
| 533 EXPECT_EQ(1, layer->update_count()); | 533 EXPECT_EQ(1, layer->update_count()); |
| 534 EXPECT_EQ(1, host1->source_frame_number()); | 534 EXPECT_EQ(1, host1->SourceFrameNumber()); |
| 535 | 535 |
| 536 // The source frame number in |host1| is now higher than host2. | 536 // The source frame number in |host1| is now higher than host2. |
| 537 layer->SetNeedsDisplay(); | 537 layer->SetNeedsDisplay(); |
| 538 host1->Composite(base::TimeTicks::Now()); | 538 host1->Composite(base::TimeTicks::Now()); |
| 539 EXPECT_EQ(2, layer->update_count()); | 539 EXPECT_EQ(2, layer->update_count()); |
| 540 EXPECT_EQ(2, host1->source_frame_number()); | 540 EXPECT_EQ(2, host1->SourceFrameNumber()); |
| 541 | 541 |
| 542 // Then moved to another LayerTreeHost. | 542 // Then moved to another LayerTreeHost. |
| 543 host1->GetLayerTree()->SetRootLayer(nullptr); | 543 host1->GetLayerTree()->SetRootLayer(nullptr); |
| 544 host2->GetLayerTree()->SetRootLayer(layer); | 544 host2->GetLayerTree()->SetRootLayer(layer); |
| 545 | 545 |
| 546 // Do a main frame, record the picture layers. The frame number has changed | 546 // Do a main frame, record the picture layers. The frame number has changed |
| 547 // non-monotonically. | 547 // non-monotonically. |
| 548 layer->SetNeedsDisplay(); | 548 layer->SetNeedsDisplay(); |
| 549 host2->Composite(base::TimeTicks::Now()); | 549 host2->Composite(base::TimeTicks::Now()); |
| 550 EXPECT_EQ(3, layer->update_count()); | 550 EXPECT_EQ(3, layer->update_count()); |
| 551 EXPECT_EQ(1, host2->source_frame_number()); | 551 EXPECT_EQ(1, host2->SourceFrameNumber()); |
| 552 } | 552 } |
| 553 | 553 |
| 554 } // namespace | 554 } // namespace |
| 555 } // namespace cc | 555 } // namespace cc |
| OLD | NEW |