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/scheduler_state_machine.h" | 5 #include "cc/scheduler_state_machine.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/stringprintf.h" | 8 #include "base/stringprintf.h" |
9 | 9 |
10 namespace cc { | 10 namespace cc { |
11 | 11 |
12 SchedulerStateMachine::SchedulerStateMachine(const SchedulerSettings& settings) | 12 SchedulerStateMachine::SchedulerStateMachine(const SchedulerSettings& settings) |
13 : m_settings(settings) | 13 : m_settings(settings) |
14 , m_commitState(COMMIT_STATE_IDLE) | 14 , m_commitState(COMMIT_STATE_IDLE) |
15 , m_currentFrameNumber(0) | 15 , m_currentFrameNumber(0) |
16 , m_lastFrameNumberWhereDrawWasCalled(-1) | 16 , m_lastFrameNumberWhereDrawWasCalled(-1) |
17 , m_lastFrameNumberWhereTreeActivationAttempted(-1) | 17 , m_lastFrameNumberWhereTreeActivationAttempted(-1) |
18 , m_lastFrameNumberWhereCheckForCompletedTexturesCalled(-1) | 18 , m_lastFrameNumberWhereCheckForCompletedTileUploadsCalled(-1) |
19 , m_consecutiveFailedDraws(0) | 19 , m_consecutiveFailedDraws(0) |
20 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) | 20 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) |
21 , m_needsRedraw(false) | 21 , m_needsRedraw(false) |
22 , m_swapUsedIncompleteTexture(false) | 22 , m_swapUsedIncompleteTile(false) |
23 , m_needsForcedRedraw(false) | 23 , m_needsForcedRedraw(false) |
24 , m_needsForcedRedrawAfterNextCommit(false) | 24 , m_needsForcedRedrawAfterNextCommit(false) |
25 , m_needsCommit(false) | 25 , m_needsCommit(false) |
26 , m_needsForcedCommit(false) | 26 , m_needsForcedCommit(false) |
27 , m_expectImmediateBeginFrame(false) | 27 , m_expectImmediateBeginFrame(false) |
28 , m_mainThreadNeedsLayerTextures(false) | 28 , m_mainThreadNeedsLayerTextures(false) |
29 , m_insideVSync(false) | 29 , m_insideVSync(false) |
30 , m_visible(false) | 30 , m_visible(false) |
31 , m_canBeginFrame(false) | 31 , m_canBeginFrame(false) |
32 , m_canDraw(false) | 32 , m_canDraw(false) |
33 , m_hasPendingTree(false) | 33 , m_hasPendingTree(false) |
34 , m_drawIfPossibleFailed(false) | 34 , m_drawIfPossibleFailed(false) |
35 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) | 35 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) |
36 , m_outputSurfaceState(OUTPUT_SURFACE_ACTIVE) | 36 , m_outputSurfaceState(OUTPUT_SURFACE_ACTIVE) |
37 { | 37 { |
38 } | 38 } |
39 | 39 |
40 std::string SchedulerStateMachine::toString() | 40 std::string SchedulerStateMachine::toString() |
41 { | 41 { |
42 std::string str; | 42 std::string str; |
43 base::StringAppendF(&str, "m_settings.implSidePainting = %d; ", m_settings.i
mplSidePainting); | 43 base::StringAppendF(&str, "m_settings.implSidePainting = %d; ", m_settings.i
mplSidePainting); |
44 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); | 44 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); |
45 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); | 45 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); |
46 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); | 46 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); |
47 base::StringAppendF(&str, "m_lastFrameNumberWhereTreeActivationAttempted = %
d; ", m_lastFrameNumberWhereTreeActivationAttempted); | 47 base::StringAppendF(&str, "m_lastFrameNumberWhereTreeActivationAttempted = %
d; ", m_lastFrameNumberWhereTreeActivationAttempted); |
48 base::StringAppendF(&str, "m_lastFrameNumberWhereCheckForCompletedTexturesCa
lled = %d; ", m_lastFrameNumberWhereCheckForCompletedTexturesCalled); | 48 base::StringAppendF(&str, "m_lastFrameNumberWhereCheckForCompletedTileUpload
sCalled = %d; ", m_lastFrameNumberWhereCheckForCompletedTileUploadsCalled); |
49 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); | 49 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); |
50 base::StringAppendF(&str, "m_maximumNumberOfFailedDrawsBeforeDrawIsForced =
%d; ", m_maximumNumberOfFailedDrawsBeforeDrawIsForced); | 50 base::StringAppendF(&str, "m_maximumNumberOfFailedDrawsBeforeDrawIsForced =
%d; ", m_maximumNumberOfFailedDrawsBeforeDrawIsForced); |
51 base::StringAppendF(&str, "m_needsRedraw = %d; ", m_needsRedraw); | 51 base::StringAppendF(&str, "m_needsRedraw = %d; ", m_needsRedraw); |
52 base::StringAppendF(&str, "m_swapUsedIncompleteTexture = %d; ", m_swapUsedIn
completeTexture); | 52 base::StringAppendF(&str, "m_swapUsedIncompleteTile = %d; ", m_swapUsedIncom
pleteTile); |
53 base::StringAppendF(&str, "m_needsForcedRedraw = %d; ", m_needsForcedRedraw)
; | 53 base::StringAppendF(&str, "m_needsForcedRedraw = %d; ", m_needsForcedRedraw)
; |
54 base::StringAppendF(&str, "m_needsForcedRedrawAfterNextCommit = %d; ", m_nee
dsForcedRedrawAfterNextCommit); | 54 base::StringAppendF(&str, "m_needsForcedRedrawAfterNextCommit = %d; ", m_nee
dsForcedRedrawAfterNextCommit); |
55 base::StringAppendF(&str, "m_needsCommit = %d; ", m_needsCommit); | 55 base::StringAppendF(&str, "m_needsCommit = %d; ", m_needsCommit); |
56 base::StringAppendF(&str, "m_needsForcedCommit = %d; ", m_needsForcedCommit)
; | 56 base::StringAppendF(&str, "m_needsForcedCommit = %d; ", m_needsForcedCommit)
; |
57 base::StringAppendF(&str, "m_expectImmediateBeginFrame = %d; ", m_expectImme
diateBeginFrame); | 57 base::StringAppendF(&str, "m_expectImmediateBeginFrame = %d; ", m_expectImme
diateBeginFrame); |
58 base::StringAppendF(&str, "m_mainThreadNeedsLayerTextures = %d; ", m_mainThr
eadNeedsLayerTextures); | 58 base::StringAppendF(&str, "m_mainThreadNeedsLayerTextures = %d; ", m_mainThr
eadNeedsLayerTextures); |
59 base::StringAppendF(&str, "m_insideVSync = %d; ", m_insideVSync); | 59 base::StringAppendF(&str, "m_insideVSync = %d; ", m_insideVSync); |
60 base::StringAppendF(&str, "m_visible = %d; ", m_visible); | 60 base::StringAppendF(&str, "m_visible = %d; ", m_visible); |
61 base::StringAppendF(&str, "m_canBeginFrame = %d; ", m_canBeginFrame); | 61 base::StringAppendF(&str, "m_canBeginFrame = %d; ", m_canBeginFrame); |
62 base::StringAppendF(&str, "m_canDraw = %d; ", m_canDraw); | 62 base::StringAppendF(&str, "m_canDraw = %d; ", m_canDraw); |
63 base::StringAppendF(&str, "m_drawIfPossibleFailed = %d; ", m_drawIfPossibleF
ailed); | 63 base::StringAppendF(&str, "m_drawIfPossibleFailed = %d; ", m_drawIfPossibleF
ailed); |
64 base::StringAppendF(&str, "m_hasPendingTree = %d; ", m_hasPendingTree); | 64 base::StringAppendF(&str, "m_hasPendingTree = %d; ", m_hasPendingTree); |
65 base::StringAppendF(&str, "m_textureState = %d; ", m_textureState); | 65 base::StringAppendF(&str, "m_textureState = %d; ", m_textureState); |
66 base::StringAppendF(&str, "m_outputSurfaceState = %d; ", m_outputSurfaceStat
e); | 66 base::StringAppendF(&str, "m_outputSurfaceState = %d; ", m_outputSurfaceStat
e); |
67 return str; | 67 return str; |
68 } | 68 } |
69 | 69 |
70 bool SchedulerStateMachine::hasDrawnThisFrame() const | 70 bool SchedulerStateMachine::hasDrawnThisFrame() const |
71 { | 71 { |
72 return m_currentFrameNumber == m_lastFrameNumberWhereDrawWasCalled; | 72 return m_currentFrameNumber == m_lastFrameNumberWhereDrawWasCalled; |
73 } | 73 } |
74 | 74 |
75 bool SchedulerStateMachine::hasAttemptedTreeActivationThisFrame() const | 75 bool SchedulerStateMachine::hasAttemptedTreeActivationThisFrame() const |
76 { | 76 { |
77 return m_currentFrameNumber == m_lastFrameNumberWhereTreeActivationAttempted
; | 77 return m_currentFrameNumber == m_lastFrameNumberWhereTreeActivationAttempted
; |
78 } | 78 } |
79 | 79 |
80 bool SchedulerStateMachine::hasCheckedForCompletedTexturesThisFrame() const | 80 bool SchedulerStateMachine::hasCheckedForCompletedTileUploadsThisFrame() const |
81 { | 81 { |
82 return m_currentFrameNumber == | 82 return m_currentFrameNumber == |
83 m_lastFrameNumberWhereCheckForCompletedTexturesCalled; | 83 m_lastFrameNumberWhereCheckForCompletedTileUploadsCalled; |
84 } | 84 } |
85 | 85 |
86 bool SchedulerStateMachine::drawSuspendedUntilCommit() const | 86 bool SchedulerStateMachine::drawSuspendedUntilCommit() const |
87 { | 87 { |
88 if (!m_canDraw) | 88 if (!m_canDraw) |
89 return true; | 89 return true; |
90 if (!m_visible) | 90 if (!m_visible) |
91 return true; | 91 return true; |
92 if (m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD) | 92 if (m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD) |
93 return true; | 93 return true; |
(...skipping 23 matching lines...) Expand all Loading... |
117 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE) | 117 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE) |
118 return false; | 118 return false; |
119 return true; | 119 return true; |
120 } | 120 } |
121 | 121 |
122 bool SchedulerStateMachine::shouldAttemptTreeActivation() const | 122 bool SchedulerStateMachine::shouldAttemptTreeActivation() const |
123 { | 123 { |
124 return m_hasPendingTree && m_insideVSync && !hasAttemptedTreeActivationThisF
rame(); | 124 return m_hasPendingTree && m_insideVSync && !hasAttemptedTreeActivationThisF
rame(); |
125 } | 125 } |
126 | 126 |
127 bool SchedulerStateMachine::shouldCheckForCompletedTextures() const | 127 bool SchedulerStateMachine::shouldCheckForCompletedTileUploads() const |
128 { | 128 { |
129 if (!m_settings.implSidePainting) | 129 if (!m_settings.implSidePainting) |
130 return false; | 130 return false; |
131 if (hasCheckedForCompletedTexturesThisFrame()) | 131 if (hasCheckedForCompletedTileUploadsThisFrame()) |
132 return false; | 132 return false; |
133 | 133 |
134 return shouldAttemptTreeActivation() || | 134 return shouldAttemptTreeActivation() || |
135 shouldDraw() || | 135 shouldDraw() || |
136 m_swapUsedIncompleteTexture; | 136 m_swapUsedIncompleteTile; |
137 } | 137 } |
138 | 138 |
139 bool SchedulerStateMachine::shouldAcquireLayerTexturesForMainThread() const | 139 bool SchedulerStateMachine::shouldAcquireLayerTexturesForMainThread() const |
140 { | 140 { |
141 if (!m_mainThreadNeedsLayerTextures) | 141 if (!m_mainThreadNeedsLayerTextures) |
142 return false; | 142 return false; |
143 if (m_textureState == LAYER_TEXTURE_STATE_UNLOCKED) | 143 if (m_textureState == LAYER_TEXTURE_STATE_UNLOCKED) |
144 return true; | 144 return true; |
145 DCHECK(m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD); | 145 DCHECK(m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD); |
146 // Transfer the lock from impl thread to main thread immediately if the | 146 // Transfer the lock from impl thread to main thread immediately if the |
(...skipping 14 matching lines...) Expand all Loading... |
161 case COMMIT_STATE_IDLE: | 161 case COMMIT_STATE_IDLE: |
162 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE && m_needsForcedRedraw
) | 162 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE && m_needsForcedRedraw
) |
163 return ACTION_DRAW_FORCED; | 163 return ACTION_DRAW_FORCED; |
164 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE && m_needsForcedCommit
) | 164 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE && m_needsForcedCommit
) |
165 // TODO(enne): Should probably drop the active tree on force commit | 165 // TODO(enne): Should probably drop the active tree on force commit |
166 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 166 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
167 if (m_outputSurfaceState == OUTPUT_SURFACE_LOST) | 167 if (m_outputSurfaceState == OUTPUT_SURFACE_LOST) |
168 return ACTION_BEGIN_OUTPUT_SURFACE_RECREATION; | 168 return ACTION_BEGIN_OUTPUT_SURFACE_RECREATION; |
169 if (m_outputSurfaceState == OUTPUT_SURFACE_RECREATING) | 169 if (m_outputSurfaceState == OUTPUT_SURFACE_RECREATING) |
170 return ACTION_NONE; | 170 return ACTION_NONE; |
171 if (shouldCheckForCompletedTextures()) | 171 if (shouldCheckForCompletedTileUploads()) |
172 return ACTION_CHECK_FOR_NEW_TEXTURES; | 172 return ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS; |
173 if (shouldAttemptTreeActivation()) | 173 if (shouldAttemptTreeActivation()) |
174 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 174 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
175 if (shouldDraw()) | 175 if (shouldDraw()) |
176 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 176 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
177 if (m_needsCommit && ((m_visible && m_canBeginFrame) || m_needsForcedCom
mit)) | 177 if (m_needsCommit && ((m_visible && m_canBeginFrame) || m_needsForcedCom
mit)) |
178 // TODO(enne): Should probably drop the active tree on force commit | 178 // TODO(enne): Should probably drop the active tree on force commit |
179 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 179 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
180 return ACTION_NONE; | 180 return ACTION_NONE; |
181 | 181 |
182 case COMMIT_STATE_FRAME_IN_PROGRESS: | 182 case COMMIT_STATE_FRAME_IN_PROGRESS: |
183 if (shouldCheckForCompletedTextures()) | 183 if (shouldCheckForCompletedTileUploads()) |
184 return ACTION_CHECK_FOR_NEW_TEXTURES; | 184 return ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS; |
185 if (shouldAttemptTreeActivation()) | 185 if (shouldAttemptTreeActivation()) |
186 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 186 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
187 if (shouldDraw()) | 187 if (shouldDraw()) |
188 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 188 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
189 return ACTION_NONE; | 189 return ACTION_NONE; |
190 | 190 |
191 case COMMIT_STATE_READY_TO_COMMIT: | 191 case COMMIT_STATE_READY_TO_COMMIT: |
192 return ACTION_COMMIT; | 192 return ACTION_COMMIT; |
193 | 193 |
194 case COMMIT_STATE_WAITING_FOR_FIRST_DRAW: { | 194 case COMMIT_STATE_WAITING_FOR_FIRST_DRAW: { |
195 if (shouldCheckForCompletedTextures()) | 195 if (shouldCheckForCompletedTileUploads()) |
196 return ACTION_CHECK_FOR_NEW_TEXTURES; | 196 return ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS; |
197 if (shouldAttemptTreeActivation()) | 197 if (shouldAttemptTreeActivation()) |
198 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 198 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
199 if (shouldDraw() || m_outputSurfaceState == OUTPUT_SURFACE_LOST) | 199 if (shouldDraw() || m_outputSurfaceState == OUTPUT_SURFACE_LOST) |
200 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 200 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
201 // COMMIT_STATE_WAITING_FOR_FIRST_DRAW wants to enforce a draw. If m_can
Draw is false | 201 // COMMIT_STATE_WAITING_FOR_FIRST_DRAW wants to enforce a draw. If m_can
Draw is false |
202 // or textures are not available, proceed to the next step (similar as i
n COMMIT_STATE_IDLE). | 202 // or textures are not available, proceed to the next step (similar as i
n COMMIT_STATE_IDLE). |
203 bool canCommit = m_visible || m_needsForcedCommit; | 203 bool canCommit = m_visible || m_needsForcedCommit; |
204 if (m_needsCommit && canCommit && drawSuspendedUntilCommit()) | 204 if (m_needsCommit && canCommit && drawSuspendedUntilCommit()) |
205 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 205 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
206 return ACTION_NONE; | 206 return ACTION_NONE; |
207 } | 207 } |
208 | 208 |
209 case COMMIT_STATE_WAITING_FOR_FIRST_FORCED_DRAW: | 209 case COMMIT_STATE_WAITING_FOR_FIRST_FORCED_DRAW: |
210 if (shouldCheckForCompletedTextures()) | 210 if (shouldCheckForCompletedTileUploads()) |
211 return ACTION_CHECK_FOR_NEW_TEXTURES; | 211 return ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS; |
212 if (shouldAttemptTreeActivation()) | 212 if (shouldAttemptTreeActivation()) |
213 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 213 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
214 if (m_needsForcedRedraw) | 214 if (m_needsForcedRedraw) |
215 return ACTION_DRAW_FORCED; | 215 return ACTION_DRAW_FORCED; |
216 return ACTION_NONE; | 216 return ACTION_NONE; |
217 } | 217 } |
218 NOTREACHED(); | 218 NOTREACHED(); |
219 return ACTION_NONE; | 219 return ACTION_NONE; |
220 } | 220 } |
221 | 221 |
222 void SchedulerStateMachine::updateState(Action action) | 222 void SchedulerStateMachine::updateState(Action action) |
223 { | 223 { |
224 switch (action) { | 224 switch (action) { |
225 case ACTION_NONE: | 225 case ACTION_NONE: |
226 return; | 226 return; |
227 | 227 |
228 case ACTION_CHECK_FOR_NEW_TEXTURES: | 228 case ACTION_CHECK_FOR_COMPLETED_TILE_UPLOADS: |
229 m_lastFrameNumberWhereCheckForCompletedTexturesCalled = m_currentFrameNu
mber; | 229 m_lastFrameNumberWhereCheckForCompletedTileUploadsCalled = m_currentFram
eNumber; |
230 return; | 230 return; |
231 | 231 |
232 case ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: | 232 case ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: |
233 m_lastFrameNumberWhereTreeActivationAttempted = m_currentFrameNumber; | 233 m_lastFrameNumberWhereTreeActivationAttempted = m_currentFrameNumber; |
234 return; | 234 return; |
235 | 235 |
236 case ACTION_BEGIN_FRAME: | 236 case ACTION_BEGIN_FRAME: |
237 DCHECK(!m_hasPendingTree); | 237 DCHECK(!m_hasPendingTree); |
238 DCHECK(m_visible || m_needsForcedCommit); | 238 DCHECK(m_visible || m_needsForcedCommit); |
239 m_commitState = COMMIT_STATE_FRAME_IN_PROGRESS; | 239 m_commitState = COMMIT_STATE_FRAME_IN_PROGRESS; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 if (m_hasPendingTree) | 306 if (m_hasPendingTree) |
307 return true; | 307 return true; |
308 | 308 |
309 // If we can't draw, don't tick until we are notified that we can draw again
. | 309 // If we can't draw, don't tick until we are notified that we can draw again
. |
310 if (!m_canDraw) | 310 if (!m_canDraw) |
311 return false; | 311 return false; |
312 | 312 |
313 if (m_needsForcedRedraw) | 313 if (m_needsForcedRedraw) |
314 return true; | 314 return true; |
315 | 315 |
316 if (m_visible && m_swapUsedIncompleteTexture) | 316 if (m_visible && m_swapUsedIncompleteTile) |
317 return true; | 317 return true; |
318 | 318 |
319 return m_needsRedraw && m_visible && m_outputSurfaceState == OUTPUT_SURFACE_
ACTIVE; | 319 return m_needsRedraw && m_visible && m_outputSurfaceState == OUTPUT_SURFACE_
ACTIVE; |
320 } | 320 } |
321 | 321 |
322 void SchedulerStateMachine::didEnterVSync() | 322 void SchedulerStateMachine::didEnterVSync() |
323 { | 323 { |
324 m_insideVSync = true; | 324 m_insideVSync = true; |
325 } | 325 } |
326 | 326 |
327 void SchedulerStateMachine::didLeaveVSync() | 327 void SchedulerStateMachine::didLeaveVSync() |
328 { | 328 { |
329 m_currentFrameNumber++; | 329 m_currentFrameNumber++; |
330 m_insideVSync = false; | 330 m_insideVSync = false; |
331 } | 331 } |
332 | 332 |
333 void SchedulerStateMachine::setVisible(bool visible) | 333 void SchedulerStateMachine::setVisible(bool visible) |
334 { | 334 { |
335 m_visible = visible; | 335 m_visible = visible; |
336 } | 336 } |
337 | 337 |
338 void SchedulerStateMachine::setNeedsRedraw() | 338 void SchedulerStateMachine::setNeedsRedraw() |
339 { | 339 { |
340 m_needsRedraw = true; | 340 m_needsRedraw = true; |
341 } | 341 } |
342 | 342 |
343 void SchedulerStateMachine::didSwapUseIncompleteTexture() | 343 void SchedulerStateMachine::didSwapUseIncompleteTile() |
344 { | 344 { |
345 m_swapUsedIncompleteTexture = true; | 345 m_swapUsedIncompleteTile = true; |
346 } | 346 } |
347 | 347 |
348 void SchedulerStateMachine::setNeedsForcedRedraw() | 348 void SchedulerStateMachine::setNeedsForcedRedraw() |
349 { | 349 { |
350 m_needsForcedRedraw = true; | 350 m_needsForcedRedraw = true; |
351 } | 351 } |
352 | 352 |
353 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) | 353 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) |
354 { | 354 { |
355 m_drawIfPossibleFailed = !success; | 355 m_drawIfPossibleFailed = !success; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 m_outputSurfaceState = OUTPUT_SURFACE_ACTIVE; | 419 m_outputSurfaceState = OUTPUT_SURFACE_ACTIVE; |
420 setNeedsCommit(); | 420 setNeedsCommit(); |
421 } | 421 } |
422 | 422 |
423 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) | 423 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) |
424 { | 424 { |
425 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; | 425 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; |
426 } | 426 } |
427 | 427 |
428 } // namespace cc | 428 } // namespace cc |
OLD | NEW |