| 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/thread_proxy.h" | 5 #include "cc/trees/thread_proxy.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 bool commit_pending; | 57 bool commit_pending; |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 struct ThreadProxy::SchedulerStateRequest { | 60 struct ThreadProxy::SchedulerStateRequest { |
| 61 CompletionEvent completion; | 61 CompletionEvent completion; |
| 62 scoped_ptr<base::Value> state; | 62 scoped_ptr<base::Value> state; |
| 63 }; | 63 }; |
| 64 | 64 |
| 65 scoped_ptr<Proxy> ThreadProxy::Create( | 65 scoped_ptr<Proxy> ThreadProxy::Create( |
| 66 LayerTreeHost* layer_tree_host, | 66 LayerTreeHost* layer_tree_host, |
| 67 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 67 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { | 68 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) { |
| 68 return make_scoped_ptr(new ThreadProxy(layer_tree_host, impl_task_runner)) | 69 return make_scoped_ptr(new ThreadProxy(layer_tree_host, |
| 69 .PassAs<Proxy>(); | 70 main_task_runner, |
| 71 impl_task_runner)).PassAs<Proxy>(); |
| 70 } | 72 } |
| 71 | 73 |
| 72 ThreadProxy::ThreadProxy( | 74 ThreadProxy::ThreadProxy( |
| 73 LayerTreeHost* layer_tree_host, | 75 LayerTreeHost* layer_tree_host, |
| 76 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
| 74 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) | 77 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) |
| 75 : Proxy(impl_task_runner), | 78 : Proxy(main_task_runner, impl_task_runner), |
| 76 main_thread_only_vars_unsafe_(this, layer_tree_host->id()), | 79 main_thread_only_vars_unsafe_(this, layer_tree_host->id()), |
| 77 main_thread_or_blocked_vars_unsafe_(layer_tree_host), | 80 main_thread_or_blocked_vars_unsafe_(layer_tree_host), |
| 78 compositor_thread_vars_unsafe_(this, layer_tree_host->id()) { | 81 compositor_thread_vars_unsafe_(this, layer_tree_host->id()) { |
| 79 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); | 82 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); |
| 80 DCHECK(IsMainThread()); | 83 DCHECK(IsMainThread()); |
| 81 DCHECK(this->layer_tree_host()); | 84 DCHECK(this->layer_tree_host()); |
| 82 } | 85 } |
| 83 | 86 |
| 84 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy, | 87 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy, |
| 85 int layer_tree_host_id) | 88 int layer_tree_host_id) |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 void ThreadProxy::SetDeferCommits(bool defer_commits) { | 461 void ThreadProxy::SetDeferCommits(bool defer_commits) { |
| 459 DCHECK(IsMainThread()); | 462 DCHECK(IsMainThread()); |
| 460 DCHECK_NE(main().defer_commits, defer_commits); | 463 DCHECK_NE(main().defer_commits, defer_commits); |
| 461 main().defer_commits = defer_commits; | 464 main().defer_commits = defer_commits; |
| 462 | 465 |
| 463 if (main().defer_commits) | 466 if (main().defer_commits) |
| 464 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::SetDeferCommits", this); | 467 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::SetDeferCommits", this); |
| 465 else | 468 else |
| 466 TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::SetDeferCommits", this); | 469 TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::SetDeferCommits", this); |
| 467 | 470 |
| 468 if (!main().defer_commits && main().pending_deferred_commit) | 471 if (!main().defer_commits && main().pending_deferred_commit) { |
| 469 Proxy::MainThreadTaskRunner()->PostTask( | 472 Proxy::MainThreadTaskRunner()->PostTask( |
| 470 FROM_HERE, | 473 FROM_HERE, |
| 471 base::Bind(&ThreadProxy::BeginMainFrame, | 474 base::Bind(&ThreadProxy::BeginMainFrame, |
| 472 main_thread_weak_ptr_, | 475 main_thread_weak_ptr_, |
| 473 base::Passed(&main().pending_deferred_commit))); | 476 base::Passed(&main().pending_deferred_commit))); |
| 477 } |
| 474 } | 478 } |
| 475 | 479 |
| 476 bool ThreadProxy::CommitRequested() const { | 480 bool ThreadProxy::CommitRequested() const { |
| 477 DCHECK(IsMainThread()); | 481 DCHECK(IsMainThread()); |
| 478 return main().commit_requested; | 482 return main().commit_requested; |
| 479 } | 483 } |
| 480 | 484 |
| 481 bool ThreadProxy::BeginMainFrameRequested() const { | 485 bool ThreadProxy::BeginMainFrameRequested() const { |
| 482 DCHECK(IsMainThread()); | 486 DCHECK(IsMainThread()); |
| 483 return main().commit_request_sent_to_impl_thread; | 487 return main().commit_request_sent_to_impl_thread; |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1451 | 1455 |
| 1452 impl().timing_history.DidActivateSyncTree(); | 1456 impl().timing_history.DidActivateSyncTree(); |
| 1453 } | 1457 } |
| 1454 | 1458 |
| 1455 void ThreadProxy::DidManageTiles() { | 1459 void ThreadProxy::DidManageTiles() { |
| 1456 DCHECK(IsImplThread()); | 1460 DCHECK(IsImplThread()); |
| 1457 impl().scheduler->DidManageTiles(); | 1461 impl().scheduler->DidManageTiles(); |
| 1458 } | 1462 } |
| 1459 | 1463 |
| 1460 } // namespace cc | 1464 } // namespace cc |
| OLD | NEW |