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

Side by Side Diff: cc/scheduler.cc

Issue 11879012: cc: Redraw incomplete frames when new texture uploads finish (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@decouple_draw3b
Patch Set: Created 7 years, 11 months 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
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/scheduler.h" 5 #include "cc/scheduler.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/layer_tree_settings.h" 10 #include "cc/layer_tree_settings.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 m_stateMachine.setNeedsForcedCommit(); 66 m_stateMachine.setNeedsForcedCommit();
67 processScheduledActions(); 67 processScheduledActions();
68 } 68 }
69 69
70 void Scheduler::setNeedsRedraw() 70 void Scheduler::setNeedsRedraw()
71 { 71 {
72 m_stateMachine.setNeedsRedraw(); 72 m_stateMachine.setNeedsRedraw();
73 processScheduledActions(); 73 processScheduledActions();
74 } 74 }
75 75
76 void Scheduler::setNeedsRedrawOnVisibleTextureUpload()
77 {
78 m_stateMachine.setNeedsRedrawOnVisibleTextureUpload();
79 processScheduledActions();
80 }
81
76 void Scheduler::setNeedsForcedRedraw() 82 void Scheduler::setNeedsForcedRedraw()
77 { 83 {
78 m_stateMachine.setNeedsForcedRedraw(); 84 m_stateMachine.setNeedsForcedRedraw();
79 processScheduledActions(); 85 processScheduledActions();
80 } 86 }
81 87
82 void Scheduler::setMainThreadNeedsLayerTextures() 88 void Scheduler::setMainThreadNeedsLayerTextures()
83 { 89 {
84 m_stateMachine.setMainThreadNeedsLayerTextures(); 90 m_stateMachine.setMainThreadNeedsLayerTextures();
85 processScheduledActions(); 91 processScheduledActions();
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 m_stateMachine.didDrawIfPossibleCompleted(result.didDraw); 187 m_stateMachine.didDrawIfPossibleCompleted(result.didDraw);
182 if (result.didSwap) 188 if (result.didSwap)
183 m_frameRateController->didBeginFrame(); 189 m_frameRateController->didBeginFrame();
184 break; 190 break;
185 } 191 }
186 case SchedulerStateMachine::ACTION_DRAW_FORCED: { 192 case SchedulerStateMachine::ACTION_DRAW_FORCED: {
187 ScheduledActionDrawAndSwapResult result = m_client->scheduledActionD rawAndSwapForced(); 193 ScheduledActionDrawAndSwapResult result = m_client->scheduledActionD rawAndSwapForced();
188 if (result.didSwap) 194 if (result.didSwap)
189 m_frameRateController->didBeginFrame(); 195 m_frameRateController->didBeginFrame();
190 break; 196 break;
197 } case SchedulerStateMachine::ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES: {
198 m_client->scheduledActionCheckForNewVisibleTextures();
199 break;
191 } case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_RECREATION: 200 } case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_RECREATION:
192 m_client->scheduledActionBeginContextRecreation(); 201 m_client->scheduledActionBeginContextRecreation();
193 break; 202 break;
194 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREA D: 203 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREA D:
195 m_client->scheduledActionAcquireLayerTexturesForMainThread(); 204 m_client->scheduledActionAcquireLayerTexturesForMainThread();
196 break; 205 break;
197 } 206 }
198 action = m_stateMachine.nextAction(); 207 action = m_stateMachine.nextAction();
199 } 208 }
200 209
201 // Activate or deactivate the frame rate controller. 210 // Activate or deactivate the frame rate controller.
202 m_frameRateController->setActive(m_stateMachine.vsyncCallbackNeeded()); 211 m_frameRateController->setActive(m_stateMachine.vsyncCallbackNeeded());
203 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime() ); 212 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime() );
204 } 213 }
205 214
206 } // namespace cc 215 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler.h ('k') | cc/scheduler_state_machine.h » ('j') | cc/tile_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698