Chromium Code Reviews| Index: cc/thread_proxy.cc |
| diff --git a/cc/thread_proxy.cc b/cc/thread_proxy.cc |
| index adb9d016d020f8acb2c046493c0daf03fb706fc4..73a943573bb0a9d5ab50204e622e2230d8a2584f 100644 |
| --- a/cc/thread_proxy.cc |
| +++ b/cc/thread_proxy.cc |
| @@ -29,6 +29,9 @@ const double contextRecreationTickRate = 0.03; |
| // Measured in seconds. |
| const double smoothnessTakesPriorityExpirationDelay = 0.25; |
| +// Measured in seconds. |
| +const double checkForCompletedRasterTasksDelay = 0.004; |
| + |
| } // namespace |
| namespace cc { |
| @@ -62,6 +65,7 @@ ThreadProxy::ThreadProxy(LayerTreeHost* layerTreeHost, scoped_ptr<Thread> implTh |
| , m_totalCommitCount(0) |
| , m_deferCommits(false) |
| , m_renewTreePriorityOnImplThreadPending(false) |
| + , m_checkForCompletedRasterTasksPending(false) |
| { |
| TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); |
| DCHECK(isMainThread()); |
| @@ -369,6 +373,24 @@ void ThreadProxy::manageTilesOnImplThread() |
| m_layerTreeHostImpl->manageTiles(); |
| } |
| +void ThreadProxy::setNeedsCheckForCompletedRasterTasksOnImplThread() |
| +{ |
|
brianderson
2013/02/12 01:44:31
DCHECK(isImplThread())?
reveman
2013/02/12 02:29:52
Sure. I'll add that to setNeedsManageTilesOnImplTh
|
| + if (m_checkForCompletedRasterTasksPending) |
| + return; |
| + Proxy::implThread()->postDelayedTask( |
| + base::Bind(&ThreadProxy::checkForCompletedRasterTasksOnImplThread, |
| + m_weakFactoryOnImplThread.GetWeakPtr()), |
| + checkForCompletedRasterTasksDelay * 1000); |
| + m_checkForCompletedRasterTasksPending = true; |
| +} |
| + |
| +void ThreadProxy::checkForCompletedRasterTasksOnImplThread() |
| +{ |
|
brianderson
2013/02/12 01:44:31
DCHECK(isImplThread())?
reveman
2013/02/12 02:29:52
Done.
|
| + m_checkForCompletedRasterTasksPending = false; |
| + if (m_layerTreeHostImpl) |
| + m_layerTreeHostImpl->checkForCompletedRasterTasks(); |
| +} |
| + |
| void ThreadProxy::setNeedsForcedCommitOnImplThread() |
| { |
| DCHECK(isImplThread()); |