| 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 #include "cc/layer_tree_settings.h" | 9 #include "cc/layer_tree_settings.h" |
| 10 | 10 |
| 11 namespace cc { | 11 namespace cc { |
| 12 | 12 |
| 13 SchedulerStateMachine::SchedulerStateMachine(const LayerTreeSettings &layerTreeS
ettings) | 13 SchedulerStateMachine::SchedulerStateMachine(const LayerTreeSettings &layerTreeS
ettings) |
| 14 : m_layerTreeSettings(layerTreeSettings) | 14 : m_layerTreeSettings(layerTreeSettings) |
| 15 , m_commitState(COMMIT_STATE_IDLE) | 15 , m_commitState(COMMIT_STATE_IDLE) |
| 16 , m_currentFrameNumber(0) | 16 , m_currentFrameNumber(0) |
| 17 , m_lastFrameNumberWhereDrawWasCalled(-1) | 17 , m_lastFrameNumberWhereDrawWasCalled(-1) |
| 18 , m_lastFrameNumberWhereTreeActivationAttempted(-1) | 18 , m_lastFrameNumberWhereTreeActivationAttempted(-1) |
| 19 , m_lastFrameNumberWhereRedrawOnVisibleTextureUploadAttempted(-1) |
| 19 , m_consecutiveFailedDraws(0) | 20 , m_consecutiveFailedDraws(0) |
| 20 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) | 21 , m_maximumNumberOfFailedDrawsBeforeDrawIsForced(3) |
| 21 , m_needsRedraw(false) | 22 , m_needsRedraw(false) |
| 23 , m_needsRedrawOnVisibleTextureUpload(false) |
| 22 , m_needsForcedRedraw(false) | 24 , m_needsForcedRedraw(false) |
| 23 , m_needsForcedRedrawAfterNextCommit(false) | 25 , m_needsForcedRedrawAfterNextCommit(false) |
| 24 , m_needsCommit(false) | 26 , m_needsCommit(false) |
| 25 , m_needsForcedCommit(false) | 27 , m_needsForcedCommit(false) |
| 26 , m_expectImmediateBeginFrame(false) | 28 , m_expectImmediateBeginFrame(false) |
| 27 , m_mainThreadNeedsLayerTextures(false) | 29 , m_mainThreadNeedsLayerTextures(false) |
| 28 , m_insideVSync(false) | 30 , m_insideVSync(false) |
| 29 , m_visible(false) | 31 , m_visible(false) |
| 30 , m_canBeginFrame(false) | 32 , m_canBeginFrame(false) |
| 31 , m_canDraw(false) | 33 , m_canDraw(false) |
| 32 , m_hasPendingTree(false) | 34 , m_hasPendingTree(false) |
| 33 , m_drawIfPossibleFailed(false) | 35 , m_drawIfPossibleFailed(false) |
| 34 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) | 36 , m_textureState(LAYER_TEXTURE_STATE_UNLOCKED) |
| 35 , m_outputSurfaceState(OUTPUT_SURFACE_ACTIVE) | 37 , m_outputSurfaceState(OUTPUT_SURFACE_ACTIVE) |
| 36 { | 38 { |
| 37 } | 39 } |
| 38 | 40 |
| 39 std::string SchedulerStateMachine::toString() | 41 std::string SchedulerStateMachine::toString() |
| 40 { | 42 { |
| 41 std::string str; | 43 std::string str; |
| 42 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); | 44 base::StringAppendF(&str, "m_commitState = %d; ", m_commitState); |
| 43 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); | 45 base::StringAppendF(&str, "m_currentFrameNumber = %d; ", m_currentFrameNumbe
r); |
| 44 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); | 46 base::StringAppendF(&str, "m_lastFrameNumberWhereDrawWasCalled = %d; ", m_la
stFrameNumberWhereDrawWasCalled); |
| 45 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); | 47 base::StringAppendF(&str, "m_consecutiveFailedDraws = %d; ", m_consecutiveFa
iledDraws); |
| 46 base::StringAppendF(&str, "m_maximumNumberOfFailedDrawsBeforeDrawIsForced =
%d; ", m_maximumNumberOfFailedDrawsBeforeDrawIsForced); | 48 base::StringAppendF(&str, "m_maximumNumberOfFailedDrawsBeforeDrawIsForced =
%d; ", m_maximumNumberOfFailedDrawsBeforeDrawIsForced); |
| 47 base::StringAppendF(&str, "m_needsRedraw = %d; ", m_needsRedraw); | 49 base::StringAppendF(&str, "m_needsRedraw = %d; ", m_needsRedraw); |
| 50 base::StringAppendF(&str, "m_needsRedrawOnVisibleTextureUpload = %d; ", m_ne
edsRedrawOnVisibleTextureUpload); |
| 48 base::StringAppendF(&str, "m_needsForcedRedraw = %d; ", m_needsForcedRedraw)
; | 51 base::StringAppendF(&str, "m_needsForcedRedraw = %d; ", m_needsForcedRedraw)
; |
| 49 base::StringAppendF(&str, "m_needsForcedRedrawAfterNextCommit = %d; ", m_nee
dsForcedRedrawAfterNextCommit); | 52 base::StringAppendF(&str, "m_needsForcedRedrawAfterNextCommit = %d; ", m_nee
dsForcedRedrawAfterNextCommit); |
| 50 base::StringAppendF(&str, "m_needsCommit = %d; ", m_needsCommit); | 53 base::StringAppendF(&str, "m_needsCommit = %d; ", m_needsCommit); |
| 51 base::StringAppendF(&str, "m_needsForcedCommit = %d; ", m_needsForcedCommit)
; | 54 base::StringAppendF(&str, "m_needsForcedCommit = %d; ", m_needsForcedCommit)
; |
| 52 base::StringAppendF(&str, "m_expectImmediateBeginFrame = %d; ", m_expectImme
diateBeginFrame); | 55 base::StringAppendF(&str, "m_expectImmediateBeginFrame = %d; ", m_expectImme
diateBeginFrame); |
| 53 base::StringAppendF(&str, "m_mainThreadNeedsLayerTextures = %d; ", m_mainThr
eadNeedsLayerTextures); | 56 base::StringAppendF(&str, "m_mainThreadNeedsLayerTextures = %d; ", m_mainThr
eadNeedsLayerTextures); |
| 54 base::StringAppendF(&str, "m_insideVSync = %d; ", m_insideVSync); | 57 base::StringAppendF(&str, "m_insideVSync = %d; ", m_insideVSync); |
| 55 base::StringAppendF(&str, "m_visible = %d; ", m_visible); | 58 base::StringAppendF(&str, "m_visible = %d; ", m_visible); |
| 56 base::StringAppendF(&str, "m_canBeginFrame = %d; ", m_canBeginFrame); | 59 base::StringAppendF(&str, "m_canBeginFrame = %d; ", m_canBeginFrame); |
| 57 base::StringAppendF(&str, "m_canDraw = %d; ", m_canDraw); | 60 base::StringAppendF(&str, "m_canDraw = %d; ", m_canDraw); |
| 58 base::StringAppendF(&str, "m_drawIfPossibleFailed = %d; ", m_drawIfPossibleF
ailed); | 61 base::StringAppendF(&str, "m_drawIfPossibleFailed = %d; ", m_drawIfPossibleF
ailed); |
| 59 base::StringAppendF(&str, "m_hasPendingTree = %d; ", m_hasPendingTree); | 62 base::StringAppendF(&str, "m_hasPendingTree = %d; ", m_hasPendingTree); |
| 60 base::StringAppendF(&str, "m_textureState = %d; ", m_textureState); | 63 base::StringAppendF(&str, "m_textureState = %d; ", m_textureState); |
| 61 base::StringAppendF(&str, "m_outputSurfaceState = %d; ", m_outputSurfaceStat
e); | 64 base::StringAppendF(&str, "m_outputSurfaceState = %d; ", m_outputSurfaceStat
e); |
| 62 return str; | 65 return str; |
| 63 } | 66 } |
| 64 | 67 |
| 65 bool SchedulerStateMachine::hasDrawnThisFrame() const | 68 bool SchedulerStateMachine::hasDrawnThisFrame() const |
| 66 { | 69 { |
| 67 return m_currentFrameNumber == m_lastFrameNumberWhereDrawWasCalled; | 70 return m_currentFrameNumber == m_lastFrameNumberWhereDrawWasCalled; |
| 68 } | 71 } |
| 69 | 72 |
| 70 bool SchedulerStateMachine::hasAttemptedTreeActivationThisFrame() const | 73 bool SchedulerStateMachine::hasAttemptedTreeActivationThisFrame() const |
| 71 { | 74 { |
| 72 return m_currentFrameNumber == m_lastFrameNumberWhereTreeActivationAttempted
; | 75 return m_currentFrameNumber == m_lastFrameNumberWhereTreeActivationAttempted
; |
| 73 } | 76 } |
| 74 | 77 |
| 78 bool SchedulerStateMachine::hasAttemptedRedrawOnVisibleTextureUploadThisFrame()
const |
| 79 { |
| 80 return m_currentFrameNumber == |
| 81 m_lastFrameNumberWhereRedrawOnVisibleTextureUploadAttempted; |
| 82 } |
| 83 |
| 75 bool SchedulerStateMachine::drawSuspendedUntilCommit() const | 84 bool SchedulerStateMachine::drawSuspendedUntilCommit() const |
| 76 { | 85 { |
| 77 if (!m_canDraw) | 86 if (!m_canDraw) |
| 78 return true; | 87 return true; |
| 79 if (!m_visible) | 88 if (!m_visible) |
| 80 return true; | 89 return true; |
| 81 if (m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD) | 90 if (m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD) |
| 82 return true; | 91 return true; |
| 83 return false; | 92 return false; |
| 84 } | 93 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 103 return false; | 112 return false; |
| 104 if (hasDrawnThisFrame()) | 113 if (hasDrawnThisFrame()) |
| 105 return false; | 114 return false; |
| 106 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE) | 115 if (m_outputSurfaceState != OUTPUT_SURFACE_ACTIVE) |
| 107 return false; | 116 return false; |
| 108 return true; | 117 return true; |
| 109 } | 118 } |
| 110 | 119 |
| 111 bool SchedulerStateMachine::shouldAttemptTreeActivation() const | 120 bool SchedulerStateMachine::shouldAttemptTreeActivation() const |
| 112 { | 121 { |
| 113 return m_hasPendingTree && m_insideVSync && !hasAttemptedTreeActivationThisFra
me(); | 122 return m_hasPendingTree && m_insideVSync && !hasAttemptedTreeActivationThisF
rame(); |
| 123 } |
| 124 |
| 125 bool SchedulerStateMachine::shouldAttemptRedrawOnVisibleTextureUpload() const |
| 126 { |
| 127 return m_needsRedrawOnVisibleTextureUpload && |
| 128 !hasAttemptedRedrawOnVisibleTextureUploadThisFrame() && |
| 129 !hasDrawnThisFrame(); |
| 114 } | 130 } |
| 115 | 131 |
| 116 bool SchedulerStateMachine::shouldAcquireLayerTexturesForMainThread() const | 132 bool SchedulerStateMachine::shouldAcquireLayerTexturesForMainThread() const |
| 117 { | 133 { |
| 118 if (!m_mainThreadNeedsLayerTextures) | 134 if (!m_mainThreadNeedsLayerTextures) |
| 119 return false; | 135 return false; |
| 120 if (m_textureState == LAYER_TEXTURE_STATE_UNLOCKED) | 136 if (m_textureState == LAYER_TEXTURE_STATE_UNLOCKED) |
| 121 return true; | 137 return true; |
| 122 DCHECK(m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD); | 138 DCHECK(m_textureState == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD); |
| 123 // Transfer the lock from impl thread to main thread immediately if the | 139 // Transfer the lock from impl thread to main thread immediately if the |
| (...skipping 18 matching lines...) Expand all Loading... |
| 142 // TODO(enne): Should probably drop the active tree on force commit | 158 // TODO(enne): Should probably drop the active tree on force commit |
| 143 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 159 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
| 144 if (m_outputSurfaceState == OUTPUT_SURFACE_LOST) | 160 if (m_outputSurfaceState == OUTPUT_SURFACE_LOST) |
| 145 return ACTION_BEGIN_OUTPUT_SURFACE_RECREATION; | 161 return ACTION_BEGIN_OUTPUT_SURFACE_RECREATION; |
| 146 if (m_outputSurfaceState == OUTPUT_SURFACE_RECREATING) | 162 if (m_outputSurfaceState == OUTPUT_SURFACE_RECREATING) |
| 147 return ACTION_NONE; | 163 return ACTION_NONE; |
| 148 if (shouldAttemptTreeActivation()) | 164 if (shouldAttemptTreeActivation()) |
| 149 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 165 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
| 150 if (shouldDraw()) | 166 if (shouldDraw()) |
| 151 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 167 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
| 168 if (shouldAttemptRedrawOnVisibleTextureUpload()) |
| 169 return ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES; |
| 152 if (m_needsCommit && ((m_visible && m_canBeginFrame) || m_needsForcedCom
mit)) | 170 if (m_needsCommit && ((m_visible && m_canBeginFrame) || m_needsForcedCom
mit)) |
| 153 // TODO(enne): Should probably drop the active tree on force commit | 171 // TODO(enne): Should probably drop the active tree on force commit |
| 154 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 172 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
| 155 return ACTION_NONE; | 173 return ACTION_NONE; |
| 156 | 174 |
| 157 case COMMIT_STATE_FRAME_IN_PROGRESS: | 175 case COMMIT_STATE_FRAME_IN_PROGRESS: |
| 158 if (shouldAttemptTreeActivation()) | 176 if (shouldAttemptTreeActivation()) |
| 159 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 177 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
| 160 if (shouldDraw()) | 178 if (shouldDraw()) |
| 161 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 179 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
| 180 if (shouldAttemptRedrawOnVisibleTextureUpload()) |
| 181 return ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES; |
| 162 return ACTION_NONE; | 182 return ACTION_NONE; |
| 163 | 183 |
| 164 case COMMIT_STATE_READY_TO_COMMIT: | 184 case COMMIT_STATE_READY_TO_COMMIT: |
| 165 return ACTION_COMMIT; | 185 return ACTION_COMMIT; |
| 166 | 186 |
| 167 case COMMIT_STATE_WAITING_FOR_FIRST_DRAW: { | 187 case COMMIT_STATE_WAITING_FOR_FIRST_DRAW: { |
| 168 if (shouldAttemptTreeActivation()) | 188 if (shouldAttemptTreeActivation()) |
| 169 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 189 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
| 170 if (shouldDraw() || m_outputSurfaceState == OUTPUT_SURFACE_LOST) | 190 if (shouldDraw() || m_outputSurfaceState == OUTPUT_SURFACE_LOST) |
| 171 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; | 191 return m_needsForcedRedraw ? ACTION_DRAW_FORCED : ACTION_DRAW_IF_POS
SIBLE; |
| 192 if (shouldAttemptRedrawOnVisibleTextureUpload()) |
| 193 return ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES; |
| 172 // COMMIT_STATE_WAITING_FOR_FIRST_DRAW wants to enforce a draw. If m_can
Draw is false | 194 // COMMIT_STATE_WAITING_FOR_FIRST_DRAW wants to enforce a draw. If m_can
Draw is false |
| 173 // or textures are not available, proceed to the next step (similar as i
n COMMIT_STATE_IDLE). | 195 // or textures are not available, proceed to the next step (similar as i
n COMMIT_STATE_IDLE). |
| 174 bool canCommit = m_visible || m_needsForcedCommit; | 196 bool canCommit = m_visible || m_needsForcedCommit; |
| 175 if (m_needsCommit && canCommit && drawSuspendedUntilCommit()) | 197 if (m_needsCommit && canCommit && drawSuspendedUntilCommit()) |
| 176 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; | 198 return m_hasPendingTree ? ACTION_NONE : ACTION_BEGIN_FRAME; |
| 177 return ACTION_NONE; | 199 return ACTION_NONE; |
| 178 } | 200 } |
| 179 | 201 |
| 180 case COMMIT_STATE_WAITING_FOR_FIRST_FORCED_DRAW: | 202 case COMMIT_STATE_WAITING_FOR_FIRST_FORCED_DRAW: |
| 181 if (shouldAttemptTreeActivation()) | 203 if (shouldAttemptTreeActivation()) |
| 182 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; | 204 return ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED; |
| 183 if (m_needsForcedRedraw) | 205 if (m_needsForcedRedraw) |
| 184 return ACTION_DRAW_FORCED; | 206 return ACTION_DRAW_FORCED; |
| 207 if (shouldAttemptRedrawOnVisibleTextureUpload()) |
| 208 return ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES; |
| 185 return ACTION_NONE; | 209 return ACTION_NONE; |
| 186 } | 210 } |
| 187 NOTREACHED(); | 211 NOTREACHED(); |
| 188 return ACTION_NONE; | 212 return ACTION_NONE; |
| 189 } | 213 } |
| 190 | 214 |
| 191 void SchedulerStateMachine::updateState(Action action) | 215 void SchedulerStateMachine::updateState(Action action) |
| 192 { | 216 { |
| 193 switch (action) { | 217 switch (action) { |
| 194 case ACTION_NONE: | 218 case ACTION_NONE: |
| 195 return; | 219 return; |
| 196 | 220 |
| 197 case ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: | 221 case ACTION_ACTIVATE_PENDING_TREE_IF_NEEDED: |
| 198 m_lastFrameNumberWhereTreeActivationAttempted = m_currentFrameNumber; | 222 m_lastFrameNumberWhereTreeActivationAttempted = m_currentFrameNumber; |
| 199 return; | 223 return; |
| 200 | 224 |
| 225 case ACTION_CHECK_FOR_NEW_VISIBLE_TEXTURES: |
| 226 // We set this false here and the caller must actively set this back |
| 227 // to true for each frame that it still needs to check for uploads. |
| 228 m_needsRedrawOnVisibleTextureUpload = false; |
| 229 m_lastFrameNumberWhereRedrawOnVisibleTextureUploadAttempted = m_currentF
rameNumber; |
| 230 return; |
| 231 |
| 201 case ACTION_BEGIN_FRAME: | 232 case ACTION_BEGIN_FRAME: |
| 202 DCHECK(!m_hasPendingTree); | 233 DCHECK(!m_hasPendingTree); |
| 203 DCHECK(m_visible || m_needsForcedCommit); | 234 DCHECK(m_visible || m_needsForcedCommit); |
| 204 m_commitState = COMMIT_STATE_FRAME_IN_PROGRESS; | 235 m_commitState = COMMIT_STATE_FRAME_IN_PROGRESS; |
| 205 m_needsCommit = false; | 236 m_needsCommit = false; |
| 206 m_needsForcedCommit = false; | 237 m_needsForcedCommit = false; |
| 207 return; | 238 return; |
| 208 | 239 |
| 209 case ACTION_COMMIT: | 240 case ACTION_COMMIT: |
| 210 if (m_expectImmediateBeginFrame) | 241 if (m_expectImmediateBeginFrame) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 if (m_hasPendingTree) | 301 if (m_hasPendingTree) |
| 271 return true; | 302 return true; |
| 272 | 303 |
| 273 // If we can't draw, don't tick until we are notified that we can draw again
. | 304 // If we can't draw, don't tick until we are notified that we can draw again
. |
| 274 if (!m_canDraw) | 305 if (!m_canDraw) |
| 275 return false; | 306 return false; |
| 276 | 307 |
| 277 if (m_needsForcedRedraw) | 308 if (m_needsForcedRedraw) |
| 278 return true; | 309 return true; |
| 279 | 310 |
| 311 if (m_visible && m_needsRedrawOnVisibleTextureUpload) |
| 312 return true; |
| 313 |
| 280 return m_needsRedraw && m_visible && m_outputSurfaceState == OUTPUT_SURFACE_
ACTIVE; | 314 return m_needsRedraw && m_visible && m_outputSurfaceState == OUTPUT_SURFACE_
ACTIVE; |
| 281 } | 315 } |
| 282 | 316 |
| 283 void SchedulerStateMachine::didEnterVSync() | 317 void SchedulerStateMachine::didEnterVSync() |
| 284 { | 318 { |
| 285 m_insideVSync = true; | 319 m_insideVSync = true; |
| 286 } | 320 } |
| 287 | 321 |
| 288 void SchedulerStateMachine::didLeaveVSync() | 322 void SchedulerStateMachine::didLeaveVSync() |
| 289 { | 323 { |
| 290 m_currentFrameNumber++; | 324 m_currentFrameNumber++; |
| 291 m_insideVSync = false; | 325 m_insideVSync = false; |
| 292 } | 326 } |
| 293 | 327 |
| 294 void SchedulerStateMachine::setVisible(bool visible) | 328 void SchedulerStateMachine::setVisible(bool visible) |
| 295 { | 329 { |
| 296 m_visible = visible; | 330 m_visible = visible; |
| 297 } | 331 } |
| 298 | 332 |
| 299 void SchedulerStateMachine::setNeedsRedraw() | 333 void SchedulerStateMachine::setNeedsRedraw() |
| 300 { | 334 { |
| 301 m_needsRedraw = true; | 335 m_needsRedraw = true; |
| 302 } | 336 } |
| 303 | 337 |
| 338 void SchedulerStateMachine::setNeedsRedrawOnVisibleTextureUpload() |
| 339 { |
| 340 m_needsRedrawOnVisibleTextureUpload = true; |
| 341 } |
| 342 |
| 304 void SchedulerStateMachine::setNeedsForcedRedraw() | 343 void SchedulerStateMachine::setNeedsForcedRedraw() |
| 305 { | 344 { |
| 306 m_needsForcedRedraw = true; | 345 m_needsForcedRedraw = true; |
| 307 } | 346 } |
| 308 | 347 |
| 309 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) | 348 void SchedulerStateMachine::didDrawIfPossibleCompleted(bool success) |
| 310 { | 349 { |
| 311 m_drawIfPossibleFailed = !success; | 350 m_drawIfPossibleFailed = !success; |
| 312 if (m_drawIfPossibleFailed) { | 351 if (m_drawIfPossibleFailed) { |
| 313 m_needsRedraw = true; | 352 m_needsRedraw = true; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 m_outputSurfaceState = OUTPUT_SURFACE_ACTIVE; | 414 m_outputSurfaceState = OUTPUT_SURFACE_ACTIVE; |
| 376 setNeedsCommit(); | 415 setNeedsCommit(); |
| 377 } | 416 } |
| 378 | 417 |
| 379 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) | 418 void SchedulerStateMachine::setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int
numDraws) |
| 380 { | 419 { |
| 381 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; | 420 m_maximumNumberOfFailedDrawsBeforeDrawIsForced = numDraws; |
| 382 } | 421 } |
| 383 | 422 |
| 384 } // namespace cc | 423 } // namespace cc |
| OLD | NEW |