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

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

Issue 23907006: cc: Allow sending BeginMainFrame before draw or activation (Closed) Base URL: http://git.chromium.org/chromium/src.git@schedDeadline3
Patch Set: Block main thread from state machine; remove completion event; Created 7 years, 3 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 #ifndef CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 5 #ifndef CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
6 #define CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 6 #define CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 BEGIN_FRAME_STATE_INSIDE_BEGIN_FRAME, 54 BEGIN_FRAME_STATE_INSIDE_BEGIN_FRAME,
55 BEGIN_FRAME_STATE_DEADLINE_PENDING, 55 BEGIN_FRAME_STATE_DEADLINE_PENDING,
56 BEGIN_FRAME_STATE_INSIDE_DEADLINE, 56 BEGIN_FRAME_STATE_INSIDE_DEADLINE,
57 }; 57 };
58 static const char* BeginFrameStateToString(BeginFrameState state); 58 static const char* BeginFrameStateToString(BeginFrameState state);
59 59
60 enum CommitState { 60 enum CommitState {
61 COMMIT_STATE_IDLE, 61 COMMIT_STATE_IDLE,
62 COMMIT_STATE_FRAME_IN_PROGRESS, 62 COMMIT_STATE_FRAME_IN_PROGRESS,
63 COMMIT_STATE_READY_TO_COMMIT, 63 COMMIT_STATE_READY_TO_COMMIT,
64 COMMIT_STATE_WAITING_FOR_FIRST_DRAW,
65 }; 64 };
66 static const char* CommitStateToString(CommitState state); 65 static const char* CommitStateToString(CommitState state);
67 66
68 enum TextureState { 67 enum TextureState {
69 LAYER_TEXTURE_STATE_UNLOCKED, 68 LAYER_TEXTURE_STATE_UNLOCKED,
70 LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD, 69 LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD,
71 LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD, 70 LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD,
72 }; 71 };
73 static const char* TextureStateToString(TextureState state); 72 static const char* TextureStateToString(TextureState state);
74 73
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 184
186 // Indicates whether drawing would, at this time, make sense. 185 // Indicates whether drawing would, at this time, make sense.
187 // CanDraw can be used to supress flashes or checkerboarding 186 // CanDraw can be used to supress flashes or checkerboarding
188 // when such behavior would be undesirable. 187 // when such behavior would be undesirable.
189 void SetCanDraw(bool can); 188 void SetCanDraw(bool can);
190 189
191 // Indicates that the pending tree is ready for activation. 190 // Indicates that the pending tree is ready for activation.
192 void NotifyReadyToActivate(); 191 void NotifyReadyToActivate();
193 192
194 bool has_pending_tree() const { return has_pending_tree_; } 193 bool has_pending_tree() const { return has_pending_tree_; }
194 bool active_tree_needs_first_draw() const {
195 return active_tree_needs_first_draw_;
196 }
195 197
196 void DidLoseOutputSurface(); 198 void DidLoseOutputSurface();
197 void DidCreateAndInitializeOutputSurface(); 199 void DidCreateAndInitializeOutputSurface();
198 bool HasInitializedOutputSurface() const; 200 bool HasInitializedOutputSurface() const;
199 201
200 // True if we need to abort draws to make forward progress. 202 // True if we need to abort draws to make forward progress.
201 bool PendingDrawsShouldBeAborted() const; 203 bool PendingDrawsShouldBeAborted() const;
202 204
203 protected: 205 protected:
204 // True if we need to force activations to make forward progress. 206 // True if we need to force activations to make forward progress.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 bool draw_if_possible_failed_; 260 bool draw_if_possible_failed_;
259 bool did_create_and_initialize_first_output_surface_; 261 bool did_create_and_initialize_first_output_surface_;
260 262
261 private: 263 private:
262 DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine); 264 DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine);
263 }; 265 };
264 266
265 } // namespace cc 267 } // namespace cc
266 268
267 #endif // CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 269 #endif // CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698