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

Side by Side Diff: cc/scheduler/scheduler.cc

Issue 16304003: Unified OutputSurface::SwapBuffers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to 205473 Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « cc/scheduler/scheduler.h ('k') | cc/test/fake_output_surface.h » ('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/scheduler/scheduler.h" 5 #include "cc/scheduler/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 10
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 94
95 int Scheduler::MaxFramesPending() const { 95 int Scheduler::MaxFramesPending() const {
96 return frame_rate_controller_->MaxFramesPending(); 96 return frame_rate_controller_->MaxFramesPending();
97 } 97 }
98 98
99 int Scheduler::NumFramesPendingForTesting() const { 99 int Scheduler::NumFramesPendingForTesting() const {
100 return frame_rate_controller_->NumFramesPendingForTesting(); 100 return frame_rate_controller_->NumFramesPendingForTesting();
101 } 101 }
102 102
103 bool Scheduler::swap_buffers_complete_supported() const {
104 return frame_rate_controller_->swap_buffers_complete_supported();
105 }
106
107 void Scheduler::SetSwapBuffersCompleteSupported(bool supported) {
108 frame_rate_controller_->SetSwapBuffersCompleteSupported(supported);
109 }
110
111 void Scheduler::DidSwapBuffersComplete() { 103 void Scheduler::DidSwapBuffersComplete() {
112 TRACE_EVENT0("cc", "Scheduler::DidSwapBuffersComplete"); 104 TRACE_EVENT0("cc", "Scheduler::DidSwapBuffersComplete");
113 frame_rate_controller_->DidSwapBuffersComplete(); 105 frame_rate_controller_->DidSwapBuffersComplete();
114 } 106 }
115 107
116 void Scheduler::DidLoseOutputSurface() { 108 void Scheduler::DidLoseOutputSurface() {
117 TRACE_EVENT0("cc", "Scheduler::DidLoseOutputSurface"); 109 TRACE_EVENT0("cc", "Scheduler::DidLoseOutputSurface");
118 state_machine_.DidLoseOutputSurface(); 110 state_machine_.DidLoseOutputSurface();
119 ProcessScheduledActions(); 111 ProcessScheduledActions();
120 } 112 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 case SchedulerStateMachine::ACTION_COMMIT: 163 case SchedulerStateMachine::ACTION_COMMIT:
172 client_->ScheduledActionCommit(); 164 client_->ScheduledActionCommit();
173 break; 165 break;
174 case SchedulerStateMachine::ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS: 166 case SchedulerStateMachine::ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS:
175 client_->ScheduledActionCheckForCompletedTileUploads(); 167 client_->ScheduledActionCheckForCompletedTileUploads();
176 break; 168 break;
177 case SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: 169 case SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED:
178 client_->ScheduledActionActivatePendingTreeIfNeeded(); 170 client_->ScheduledActionActivatePendingTreeIfNeeded();
179 break; 171 break;
180 case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: { 172 case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: {
173 frame_rate_controller_->DidSwapBuffers();
181 ScheduledActionDrawAndSwapResult result = 174 ScheduledActionDrawAndSwapResult result =
182 client_->ScheduledActionDrawAndSwapIfPossible(); 175 client_->ScheduledActionDrawAndSwapIfPossible();
183 state_machine_.DidDrawIfPossibleCompleted(result.did_draw); 176 state_machine_.DidDrawIfPossibleCompleted(result.did_draw);
184 if (result.did_swap) 177 if (!result.did_swap)
185 frame_rate_controller_->DidSwapBuffers(); 178 frame_rate_controller_->DidSwapBuffersComplete();
186 break; 179 break;
187 } 180 }
188 case SchedulerStateMachine::ACTION_DRAW_FORCED: { 181 case SchedulerStateMachine::ACTION_DRAW_FORCED: {
182 frame_rate_controller_->DidSwapBuffers();
189 ScheduledActionDrawAndSwapResult result = 183 ScheduledActionDrawAndSwapResult result =
190 client_->ScheduledActionDrawAndSwapForced(); 184 client_->ScheduledActionDrawAndSwapForced();
191 if (result.did_swap) 185 if (!result.did_swap)
192 frame_rate_controller_->DidSwapBuffers(); 186 frame_rate_controller_->DidSwapBuffersComplete();
193 break; 187 break;
194 } 188 }
195 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION: 189 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION:
196 client_->ScheduledActionBeginOutputSurfaceCreation(); 190 client_->ScheduledActionBeginOutputSurfaceCreation();
197 break; 191 break;
198 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD: 192 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD:
199 client_->ScheduledActionAcquireLayerTexturesForMainThread(); 193 client_->ScheduledActionAcquireLayerTexturesForMainThread();
200 break; 194 break;
201 } 195 }
202 action = state_machine_.NextAction(); 196 action = state_machine_.NextAction();
203 } 197 }
204 198
205 // Activate or deactivate the frame rate controller. 199 // Activate or deactivate the frame rate controller.
206 frame_rate_controller_->SetActive( 200 frame_rate_controller_->SetActive(
207 state_machine_.BeginFrameNeededByImplThread()); 201 state_machine_.BeginFrameNeededByImplThread());
208 client_->DidAnticipatedDrawTimeChange(frame_rate_controller_->NextTickTime()); 202 client_->DidAnticipatedDrawTimeChange(frame_rate_controller_->NextTickTime());
209 } 203 }
210 204
211 bool Scheduler::WillDrawIfNeeded() const { 205 bool Scheduler::WillDrawIfNeeded() const {
212 return !state_machine_.DrawSuspendedUntilCommit(); 206 return !state_machine_.DrawSuspendedUntilCommit();
213 } 207 }
214 208
215 } // namespace cc 209 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler.h ('k') | cc/test/fake_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698