Chromium Code Reviews| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 86 DCHECK(IsMainThread()); | 86 DCHECK(IsMainThread()); |
| 87 DCHECK(this->layer_tree_host()); | 87 DCHECK(this->layer_tree_host()); |
| 88 } | 88 } |
| 89 | 89 |
| 90 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy, | 90 ThreadProxy::MainThreadOnly::MainThreadOnly(ThreadProxy* proxy, |
| 91 int layer_tree_host_id) | 91 int layer_tree_host_id) |
| 92 : layer_tree_host_id(layer_tree_host_id), | 92 : layer_tree_host_id(layer_tree_host_id), |
| 93 animate_requested(false), | 93 animate_requested(false), |
| 94 commit_requested(false), | 94 commit_requested(false), |
| 95 commit_request_sent_to_impl_thread(false), | 95 commit_request_sent_to_impl_thread(false), |
| 96 begin_frame_requested(false), | |
| 96 started(false), | 97 started(false), |
| 97 manage_tiles_pending(false), | 98 manage_tiles_pending(false), |
| 98 can_cancel_commit(true), | 99 can_cancel_commit(true), |
| 99 defer_commits(false), | 100 defer_commits(false), |
| 100 weak_factory(proxy) {} | 101 weak_factory(proxy) {} |
| 101 | 102 |
| 102 ThreadProxy::MainThreadOnly::~MainThreadOnly() {} | 103 ThreadProxy::MainThreadOnly::~MainThreadOnly() {} |
| 103 | 104 |
| 104 ThreadProxy::MainThreadOrBlockedMainThread::MainThreadOrBlockedMainThread( | 105 ThreadProxy::MainThreadOrBlockedMainThread::MainThreadOrBlockedMainThread( |
| 105 LayerTreeHost* host) | 106 LayerTreeHost* host) |
| (...skipping 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1181 } | 1182 } |
| 1182 | 1183 |
| 1183 base::TimeDelta ThreadProxy::CommitToActivateDurationEstimate() { | 1184 base::TimeDelta ThreadProxy::CommitToActivateDurationEstimate() { |
| 1184 return impl().timing_history.CommitToActivateDurationEstimate(); | 1185 return impl().timing_history.CommitToActivateDurationEstimate(); |
| 1185 } | 1186 } |
| 1186 | 1187 |
| 1187 void ThreadProxy::DidBeginImplFrameDeadline() { | 1188 void ThreadProxy::DidBeginImplFrameDeadline() { |
| 1188 impl().layer_tree_host_impl->ResetCurrentFrameTimeForNextFrame(); | 1189 impl().layer_tree_host_impl->ResetCurrentFrameTimeForNextFrame(); |
| 1189 } | 1190 } |
| 1190 | 1191 |
| 1192 void ThreadProxy::SendBeginFrame(const BeginFrameArgs& args) { | |
| 1193 DCHECK(IsImplThread()); | |
| 1194 Proxy::MainThreadTaskRunner()->PostTask( | |
|
brianderson
2014/08/21 00:14:00
It would be nice if we could send directly Rendere
simonhong
2014/08/21 00:36:49
Is ChromeOS also a target for SingleThreadProxy?
I
simonhong
2014/08/26 08:24:48
This also removed.
| |
| 1195 FROM_HERE, | |
| 1196 base::Bind(&ThreadProxy::SendBeginFrameOnMainThread, | |
| 1197 main_thread_weak_ptr_, | |
| 1198 args)); | |
| 1199 } | |
| 1200 | |
| 1201 void ThreadProxy::SendBeginFrameOnMainThread(const BeginFrameArgs& args) { | |
| 1202 DCHECK(IsMainThread()); | |
| 1203 DCHECK(main().begin_frame_requested); | |
| 1204 main().begin_frame_requested = false; | |
| 1205 layer_tree_host()->SendBeginFrame(args); | |
| 1206 } | |
| 1207 | |
| 1191 void ThreadProxy::ReadyToFinalizeTextureUpdates() { | 1208 void ThreadProxy::ReadyToFinalizeTextureUpdates() { |
| 1192 DCHECK(IsImplThread()); | 1209 DCHECK(IsImplThread()); |
| 1193 impl().scheduler->NotifyReadyToCommit(); | 1210 impl().scheduler->NotifyReadyToCommit(); |
| 1194 } | 1211 } |
| 1195 | 1212 |
| 1196 void ThreadProxy::DidCommitAndDrawFrame() { | 1213 void ThreadProxy::DidCommitAndDrawFrame() { |
| 1197 DCHECK(IsMainThread()); | 1214 DCHECK(IsMainThread()); |
| 1198 layer_tree_host()->DidCommitAndDrawFrame(); | 1215 layer_tree_host()->DidCommitAndDrawFrame(); |
| 1199 } | 1216 } |
| 1200 | 1217 |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1329 Proxy::ImplThreadTaskRunner()->PostTask( | 1346 Proxy::ImplThreadTaskRunner()->PostTask( |
| 1330 FROM_HERE, | 1347 FROM_HERE, |
| 1331 base::Bind(&ThreadProxy::CommitPendingOnImplThreadForTesting, | 1348 base::Bind(&ThreadProxy::CommitPendingOnImplThreadForTesting, |
| 1332 impl_thread_weak_ptr_, | 1349 impl_thread_weak_ptr_, |
| 1333 &commit_pending_request)); | 1350 &commit_pending_request)); |
| 1334 commit_pending_request.completion.Wait(); | 1351 commit_pending_request.completion.Wait(); |
| 1335 } | 1352 } |
| 1336 return commit_pending_request.commit_pending; | 1353 return commit_pending_request.commit_pending; |
| 1337 } | 1354 } |
| 1338 | 1355 |
| 1356 void ThreadProxy::BeginFrameRequested() { | |
| 1357 DCHECK(IsMainThread()); | |
| 1358 if (main().begin_frame_requested) | |
| 1359 return; | |
| 1360 | |
| 1361 main().begin_frame_requested = true; | |
| 1362 | |
| 1363 TRACE_EVENT0("cc", "ThreadProxy::BeginFrameRequested"); | |
| 1364 Proxy::ImplThreadTaskRunner()->PostTask( | |
| 1365 FROM_HERE, | |
| 1366 base::Bind(&ThreadProxy::BeginFrameRequestedOnImplThread, | |
| 1367 impl_thread_weak_ptr_)); | |
| 1368 } | |
| 1369 | |
| 1370 void ThreadProxy::BeginFrameRequestedOnImplThread() const { | |
| 1371 DCHECK(IsImplThread()); | |
| 1372 impl().scheduler->BeginFrameRequested(); | |
| 1373 } | |
| 1374 | |
| 1339 void ThreadProxy::CommitPendingOnImplThreadForTesting( | 1375 void ThreadProxy::CommitPendingOnImplThreadForTesting( |
| 1340 CommitPendingRequest* request) { | 1376 CommitPendingRequest* request) { |
| 1341 DCHECK(IsImplThread()); | 1377 DCHECK(IsImplThread()); |
| 1342 if (impl().layer_tree_host_impl->output_surface()) | 1378 if (impl().layer_tree_host_impl->output_surface()) |
| 1343 request->commit_pending = impl().scheduler->CommitPending(); | 1379 request->commit_pending = impl().scheduler->CommitPending(); |
| 1344 else | 1380 else |
| 1345 request->commit_pending = false; | 1381 request->commit_pending = false; |
| 1346 request->completion.Signal(); | 1382 request->completion.Signal(); |
| 1347 } | 1383 } |
| 1348 | 1384 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1414 | 1450 |
| 1415 impl().timing_history.DidActivateSyncTree(); | 1451 impl().timing_history.DidActivateSyncTree(); |
| 1416 } | 1452 } |
| 1417 | 1453 |
| 1418 void ThreadProxy::DidManageTiles() { | 1454 void ThreadProxy::DidManageTiles() { |
| 1419 DCHECK(IsImplThread()); | 1455 DCHECK(IsImplThread()); |
| 1420 impl().scheduler->DidManageTiles(); | 1456 impl().scheduler->DidManageTiles(); |
| 1421 } | 1457 } |
| 1422 | 1458 |
| 1423 } // namespace cc | 1459 } // namespace cc |
| OLD | NEW |