| 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/test/layer_tree_test.h" | 5 #include "cc/test/layer_tree_test.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "cc/animation/animation.h" | 8 #include "cc/animation/animation.h" |
| 9 #include "cc/animation/animation_registrar.h" | 9 #include "cc/animation/animation_registrar.h" |
| 10 #include "cc/animation/layer_animation_controller.h" | 10 #include "cc/animation/layer_animation_controller.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 TestHooks::~TestHooks() {} | 38 TestHooks::~TestHooks() {} |
| 39 | 39 |
| 40 DrawResult TestHooks::PrepareToDrawOnThread( | 40 DrawResult TestHooks::PrepareToDrawOnThread( |
| 41 LayerTreeHostImpl* host_impl, | 41 LayerTreeHostImpl* host_impl, |
| 42 LayerTreeHostImpl::FrameData* frame_data, | 42 LayerTreeHostImpl::FrameData* frame_data, |
| 43 DrawResult draw_result) { | 43 DrawResult draw_result) { |
| 44 return draw_result; | 44 return draw_result; |
| 45 } | 45 } |
| 46 | 46 |
| 47 void TestHooks::CreateResourceAndRasterWorkerPool( |
| 48 LayerTreeHostImpl* host_impl, |
| 49 scoped_ptr<RasterWorkerPool>* raster_worker_pool, |
| 50 scoped_ptr<ResourcePool>* resource_pool, |
| 51 scoped_ptr<ResourcePool>* staging_resource_pool) { |
| 52 host_impl->LayerTreeHostImpl::CreateResourceAndRasterWorkerPool( |
| 53 raster_worker_pool, resource_pool, staging_resource_pool); |
| 54 } |
| 55 |
| 47 base::TimeDelta TestHooks::LowFrequencyAnimationInterval() const { | 56 base::TimeDelta TestHooks::LowFrequencyAnimationInterval() const { |
| 48 return base::TimeDelta::FromMilliseconds(16); | 57 return base::TimeDelta::FromMilliseconds(16); |
| 49 } | 58 } |
| 50 | 59 |
| 51 // Adapts ThreadProxy for test. Injects test hooks for testing. | 60 // Adapts ThreadProxy for test. Injects test hooks for testing. |
| 52 class ThreadProxyForTest : public ThreadProxy { | 61 class ThreadProxyForTest : public ThreadProxy { |
| 53 public: | 62 public: |
| 54 static scoped_ptr<Proxy> Create( | 63 static scoped_ptr<Proxy> Create( |
| 55 TestHooks* test_hooks, | 64 TestHooks* test_hooks, |
| 56 LayerTreeHost* host, | 65 LayerTreeHost* host, |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 host_impl_client, | 148 host_impl_client, |
| 140 proxy, | 149 proxy, |
| 141 stats_instrumentation, | 150 stats_instrumentation, |
| 142 shared_bitmap_manager, | 151 shared_bitmap_manager, |
| 143 gpu_memory_buffer_manager, | 152 gpu_memory_buffer_manager, |
| 144 0), | 153 0), |
| 145 test_hooks_(test_hooks), | 154 test_hooks_(test_hooks), |
| 146 block_notify_ready_to_activate_for_testing_(false), | 155 block_notify_ready_to_activate_for_testing_(false), |
| 147 notify_ready_to_activate_was_blocked_(false) {} | 156 notify_ready_to_activate_was_blocked_(false) {} |
| 148 | 157 |
| 158 void CreateResourceAndRasterWorkerPool( |
| 159 scoped_ptr<RasterWorkerPool>* raster_worker_pool, |
| 160 scoped_ptr<ResourcePool>* resource_pool, |
| 161 scoped_ptr<ResourcePool>* staging_resource_pool) override { |
| 162 test_hooks_->CreateResourceAndRasterWorkerPool( |
| 163 this, raster_worker_pool, resource_pool, staging_resource_pool); |
| 164 } |
| 165 |
| 149 void WillBeginImplFrame(const BeginFrameArgs& args) override { | 166 void WillBeginImplFrame(const BeginFrameArgs& args) override { |
| 150 LayerTreeHostImpl::WillBeginImplFrame(args); | 167 LayerTreeHostImpl::WillBeginImplFrame(args); |
| 151 test_hooks_->WillBeginImplFrameOnThread(this, args); | 168 test_hooks_->WillBeginImplFrameOnThread(this, args); |
| 152 } | 169 } |
| 153 | 170 |
| 154 void BeginMainFrameAborted(bool did_handle) override { | 171 void BeginMainFrameAborted(bool did_handle) override { |
| 155 LayerTreeHostImpl::BeginMainFrameAborted(did_handle); | 172 LayerTreeHostImpl::BeginMainFrameAborted(did_handle); |
| 156 test_hooks_->BeginMainFrameAbortedOnThread(this, did_handle); | 173 test_hooks_->BeginMainFrameAbortedOnThread(this, did_handle); |
| 157 } | 174 } |
| 158 | 175 |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 392 test_hooks_(test_hooks), | 409 test_hooks_(test_hooks), |
| 393 test_started_(false) {} | 410 test_started_(false) {} |
| 394 | 411 |
| 395 scoped_ptr<TestSharedBitmapManager> shared_bitmap_manager_; | 412 scoped_ptr<TestSharedBitmapManager> shared_bitmap_manager_; |
| 396 scoped_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; | 413 scoped_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; |
| 397 TestHooks* test_hooks_; | 414 TestHooks* test_hooks_; |
| 398 bool test_started_; | 415 bool test_started_; |
| 399 }; | 416 }; |
| 400 | 417 |
| 401 LayerTreeTest::LayerTreeTest() | 418 LayerTreeTest::LayerTreeTest() |
| 402 : beginning_(false), | 419 : output_surface_(nullptr), |
| 420 beginning_(false), |
| 403 end_when_begin_returns_(false), | 421 end_when_begin_returns_(false), |
| 404 timed_out_(false), | 422 timed_out_(false), |
| 405 scheduled_(false), | 423 scheduled_(false), |
| 406 started_(false), | 424 started_(false), |
| 407 ended_(false), | 425 ended_(false), |
| 408 delegating_renderer_(false), | 426 delegating_renderer_(false), |
| 409 timeout_seconds_(0), | 427 timeout_seconds_(0), |
| 410 weak_factory_(this) { | 428 weak_factory_(this) { |
| 411 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr(); | 429 main_thread_weak_ptr_ = weak_factory_.GetWeakPtr(); |
| 412 | 430 |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 507 &LayerTreeTest::DispatchSetVisible, main_thread_weak_ptr_, visible)); | 525 &LayerTreeTest::DispatchSetVisible, main_thread_weak_ptr_, visible)); |
| 508 } | 526 } |
| 509 | 527 |
| 510 void LayerTreeTest::PostSetNextCommitForcesRedrawToMainThread() { | 528 void LayerTreeTest::PostSetNextCommitForcesRedrawToMainThread() { |
| 511 main_task_runner_->PostTask( | 529 main_task_runner_->PostTask( |
| 512 FROM_HERE, | 530 FROM_HERE, |
| 513 base::Bind(&LayerTreeTest::DispatchSetNextCommitForcesRedraw, | 531 base::Bind(&LayerTreeTest::DispatchSetNextCommitForcesRedraw, |
| 514 main_thread_weak_ptr_)); | 532 main_thread_weak_ptr_)); |
| 515 } | 533 } |
| 516 | 534 |
| 535 void LayerTreeTest::PostCompositeImmediatelyToMainThread() { |
| 536 main_task_runner_->PostTask( |
| 537 FROM_HERE, |
| 538 base::Bind(&LayerTreeTest::DispatchCompositeImmediately, |
| 539 main_thread_weak_ptr_)); |
| 540 } |
| 541 |
| 517 void LayerTreeTest::WillBeginTest() { | 542 void LayerTreeTest::WillBeginTest() { |
| 518 layer_tree_host_->SetLayerTreeHostClientReady(); | 543 layer_tree_host_->SetLayerTreeHostClientReady(); |
| 519 } | 544 } |
| 520 | 545 |
| 521 void LayerTreeTest::DoBeginTest() { | 546 void LayerTreeTest::DoBeginTest() { |
| 522 client_ = LayerTreeHostClientForTesting::Create(this); | 547 client_ = LayerTreeHostClientForTesting::Create(this); |
| 523 | 548 |
| 524 DCHECK(!impl_thread_ || impl_thread_->message_loop_proxy().get()); | 549 DCHECK(!impl_thread_ || impl_thread_->message_loop_proxy().get()); |
| 525 layer_tree_host_ = LayerTreeHostForTesting::Create( | 550 layer_tree_host_ = LayerTreeHostForTesting::Create( |
| 526 this, | 551 this, |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 layer_tree_host_->SetVisible(visible); | 647 layer_tree_host_->SetVisible(visible); |
| 623 } | 648 } |
| 624 | 649 |
| 625 void LayerTreeTest::DispatchSetNextCommitForcesRedraw() { | 650 void LayerTreeTest::DispatchSetNextCommitForcesRedraw() { |
| 626 DCHECK(!proxy() || proxy()->IsMainThread()); | 651 DCHECK(!proxy() || proxy()->IsMainThread()); |
| 627 | 652 |
| 628 if (layer_tree_host_) | 653 if (layer_tree_host_) |
| 629 layer_tree_host_->SetNextCommitForcesRedraw(); | 654 layer_tree_host_->SetNextCommitForcesRedraw(); |
| 630 } | 655 } |
| 631 | 656 |
| 657 void LayerTreeTest::DispatchCompositeImmediately() { |
| 658 DCHECK(!proxy() || proxy()->IsMainThread()); |
| 659 if (layer_tree_host_) |
| 660 layer_tree_host_->Composite(gfx::FrameTime::Now()); |
| 661 } |
| 662 |
| 632 void LayerTreeTest::RunTest(bool threaded, | 663 void LayerTreeTest::RunTest(bool threaded, |
| 633 bool delegating_renderer, | 664 bool delegating_renderer, |
| 634 bool impl_side_painting) { | 665 bool impl_side_painting) { |
| 635 if (threaded) { | 666 if (threaded) { |
| 636 impl_thread_.reset(new base::Thread("Compositor")); | 667 impl_thread_.reset(new base::Thread("Compositor")); |
| 637 ASSERT_TRUE(impl_thread_->Start()); | 668 ASSERT_TRUE(impl_thread_->Start()); |
| 638 } | 669 } |
| 639 | 670 |
| 640 main_task_runner_ = base::MessageLoopProxy::current(); | 671 main_task_runner_ = base::MessageLoopProxy::current(); |
| 641 | 672 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 715 return -1; | 746 return -1; |
| 716 } | 747 } |
| 717 | 748 |
| 718 void LayerTreeTest::DestroyLayerTreeHost() { | 749 void LayerTreeTest::DestroyLayerTreeHost() { |
| 719 if (layer_tree_host_ && layer_tree_host_->root_layer()) | 750 if (layer_tree_host_ && layer_tree_host_->root_layer()) |
| 720 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL); | 751 layer_tree_host_->root_layer()->SetLayerTreeHost(NULL); |
| 721 layer_tree_host_ = nullptr; | 752 layer_tree_host_ = nullptr; |
| 722 } | 753 } |
| 723 | 754 |
| 724 } // namespace cc | 755 } // namespace cc |
| OLD | NEW |