Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: cc/trees/thread_proxy.cc

Issue 734063004: Update from https://crrev.com/304418 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/thread_proxy.h ('k') | gin/v8.isolate » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 DCHECK(IsImplThread()); 472 DCHECK(IsImplThread());
473 impl().scheduler->SetNeedsManageTiles(); 473 impl().scheduler->SetNeedsManageTiles();
474 } 474 }
475 475
476 void ThreadProxy::SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) { 476 void ThreadProxy::SetNeedsRedrawRectOnImplThread(const gfx::Rect& damage_rect) {
477 DCHECK(IsImplThread()); 477 DCHECK(IsImplThread());
478 impl().layer_tree_host_impl->SetViewportDamage(damage_rect); 478 impl().layer_tree_host_impl->SetViewportDamage(damage_rect);
479 SetNeedsRedrawOnImplThread(); 479 SetNeedsRedrawOnImplThread();
480 } 480 }
481 481
482 void ThreadProxy::SetSwapUsedIncompleteTileOnImplThread(
483 bool used_incomplete_tile) {
484 DCHECK(IsImplThread());
485 if (used_incomplete_tile) {
486 TRACE_EVENT_INSTANT0("cc",
487 "ThreadProxy::SetSwapUsedIncompleteTileOnImplThread",
488 TRACE_EVENT_SCOPE_THREAD);
489 }
490 impl().scheduler->SetSwapUsedIncompleteTile(used_incomplete_tile);
491 }
492
493 void ThreadProxy::DidInitializeVisibleTileOnImplThread() {
494 TRACE_EVENT0("cc", "ThreadProxy::DidInitializeVisibleTileOnImplThread");
495 DCHECK(IsImplThread());
496 impl().scheduler->SetNeedsRedraw();
497 }
498
499 void ThreadProxy::MainThreadHasStoppedFlinging() { 482 void ThreadProxy::MainThreadHasStoppedFlinging() {
500 DCHECK(IsMainThread()); 483 DCHECK(IsMainThread());
501 Proxy::ImplThreadTaskRunner()->PostTask( 484 Proxy::ImplThreadTaskRunner()->PostTask(
502 FROM_HERE, 485 FROM_HERE,
503 base::Bind(&ThreadProxy::MainThreadHasStoppedFlingingOnImplThread, 486 base::Bind(&ThreadProxy::MainThreadHasStoppedFlingingOnImplThread,
504 impl_thread_weak_ptr_)); 487 impl_thread_weak_ptr_));
505 } 488 }
506 489
507 void ThreadProxy::MainThreadHasStoppedFlingingOnImplThread() { 490 void ThreadProxy::MainThreadHasStoppedFlingingOnImplThread() {
508 DCHECK(IsImplThread()); 491 DCHECK(IsImplThread());
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 // often a good bit of work to update the tree and prepare the new frame. 965 // often a good bit of work to update the tree and prepare the new frame.
983 impl().layer_tree_host_impl->CommitComplete(); 966 impl().layer_tree_host_impl->CommitComplete();
984 967
985 SetInputThrottledUntilCommitOnImplThread(false); 968 SetInputThrottledUntilCommitOnImplThread(false);
986 969
987 impl().next_frame_is_newly_committed_frame = true; 970 impl().next_frame_is_newly_committed_frame = true;
988 971
989 impl().timing_history.DidCommit(); 972 impl().timing_history.DidCommit();
990 } 973 }
991 974
992 void ThreadProxy::ScheduledActionUpdateVisibleTiles() {
993 TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionUpdateVisibleTiles");
994 DCHECK(IsImplThread());
995 impl().layer_tree_host_impl->UpdateVisibleTiles();
996 }
997
998 void ThreadProxy::ScheduledActionActivateSyncTree() { 975 void ThreadProxy::ScheduledActionActivateSyncTree() {
999 TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionActivateSyncTree"); 976 TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionActivateSyncTree");
1000 DCHECK(IsImplThread()); 977 DCHECK(IsImplThread());
1001 impl().layer_tree_host_impl->ActivateSyncTree(); 978 impl().layer_tree_host_impl->ActivateSyncTree();
1002 } 979 }
1003 980
1004 void ThreadProxy::ScheduledActionBeginOutputSurfaceCreation() { 981 void ThreadProxy::ScheduledActionBeginOutputSurfaceCreation() {
1005 TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionBeginOutputSurfaceCreation"); 982 TRACE_EVENT0("cc", "ThreadProxy::ScheduledActionBeginOutputSurfaceCreation");
1006 DCHECK(IsImplThread()); 983 DCHECK(IsImplThread());
1007 Proxy::MainThreadTaskRunner()->PostTask( 984 Proxy::MainThreadTaskRunner()->PostTask(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 &frame, impl().scheduler->LastBeginImplFrameTime()); 1025 &frame, impl().scheduler->LastBeginImplFrameTime());
1049 result = DRAW_SUCCESS; 1026 result = DRAW_SUCCESS;
1050 } else { 1027 } else {
1051 DCHECK_NE(DRAW_SUCCESS, result); 1028 DCHECK_NE(DRAW_SUCCESS, result);
1052 } 1029 }
1053 impl().layer_tree_host_impl->DidDrawAllLayers(frame); 1030 impl().layer_tree_host_impl->DidDrawAllLayers(frame);
1054 1031
1055 bool start_ready_animations = draw_frame; 1032 bool start_ready_animations = draw_frame;
1056 impl().layer_tree_host_impl->UpdateAnimationState(start_ready_animations); 1033 impl().layer_tree_host_impl->UpdateAnimationState(start_ready_animations);
1057 1034
1058 if (draw_frame) { 1035 if (draw_frame)
1059 bool did_request_swap = impl().layer_tree_host_impl->SwapBuffers(frame); 1036 impl().layer_tree_host_impl->SwapBuffers(frame);
1060
1061 // We don't know if we have incomplete tiles if we didn't actually swap.
1062 if (did_request_swap) {
1063 DCHECK(!frame.has_no_damage);
1064 SetSwapUsedIncompleteTileOnImplThread(frame.contains_incomplete_tile);
1065 }
1066 }
1067 1037
1068 // Tell the main thread that the the newly-commited frame was drawn. 1038 // Tell the main thread that the the newly-commited frame was drawn.
1069 if (impl().next_frame_is_newly_committed_frame) { 1039 if (impl().next_frame_is_newly_committed_frame) {
1070 impl().next_frame_is_newly_committed_frame = false; 1040 impl().next_frame_is_newly_committed_frame = false;
1071 Proxy::MainThreadTaskRunner()->PostTask( 1041 Proxy::MainThreadTaskRunner()->PostTask(
1072 FROM_HERE, 1042 FROM_HERE,
1073 base::Bind(&ThreadProxy::DidCommitAndDrawFrame, main_thread_weak_ptr_)); 1043 base::Bind(&ThreadProxy::DidCommitAndDrawFrame, main_thread_weak_ptr_));
1074 } 1044 }
1075 1045
1076 if (result == DRAW_SUCCESS) 1046 if (result == DRAW_SUCCESS)
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
1363 1333
1364 impl().timing_history.DidActivateSyncTree(); 1334 impl().timing_history.DidActivateSyncTree();
1365 } 1335 }
1366 1336
1367 void ThreadProxy::DidManageTiles() { 1337 void ThreadProxy::DidManageTiles() {
1368 DCHECK(IsImplThread()); 1338 DCHECK(IsImplThread());
1369 impl().scheduler->DidManageTiles(); 1339 impl().scheduler->DidManageTiles();
1370 } 1340 }
1371 1341
1372 } // namespace cc 1342 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/thread_proxy.h ('k') | gin/v8.isolate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698