summaryrefslogtreecommitdiffstats
path: root/cc/CCSchedulerStateMachine.h
diff options
context:
space:
mode:
authorenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 22:43:41 +0000
committerenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 22:43:41 +0000
commitcd57cc5a246367c2558fefa04ae9eca8f4d545d2 (patch)
treea2235045e9c5e4ff028d641b76f5d01aa5461b26 /cc/CCSchedulerStateMachine.h
parent3fe7ba055be580443445895c0ee01ada3b628487 (diff)
downloadchromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.zip
chromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.tar.gz
chromium_src-cd57cc5a246367c2558fefa04ae9eca8f4d545d2.tar.bz2
[cc] Rename all cc/ filenames to Chromium style
BUG=155413 Review URL: https://codereview.chromium.org/11122003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161671 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/CCSchedulerStateMachine.h')
-rw-r--r--cc/CCSchedulerStateMachine.h161
1 files changed, 3 insertions, 158 deletions
diff --git a/cc/CCSchedulerStateMachine.h b/cc/CCSchedulerStateMachine.h
index 092231f..a585284 100644
--- a/cc/CCSchedulerStateMachine.h
+++ b/cc/CCSchedulerStateMachine.h
@@ -1,161 +1,6 @@
-// Copyright 2011 The Chromium Authors. All rights reserved.
+// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CCSchedulerStateMachine_h
-#define CCSchedulerStateMachine_h
-
-#include <string>
-
-#include "base/basictypes.h"
-
-namespace cc {
-
-// The CCSchedulerStateMachine decides how to coordinate main thread activites
-// like painting/running javascript with rendering and input activities on the
-// impl thread.
-//
-// The state machine tracks internal state but is also influenced by external state.
-// Internal state includes things like whether a frame has been requested, while
-// external state includes things like the current time being near to the vblank time.
-//
-// The scheduler seperates "what to do next" from the updating of its internal state to
-// make testing cleaner.
-class CCSchedulerStateMachine {
-public:
- CCSchedulerStateMachine();
-
- enum CommitState {
- COMMIT_STATE_IDLE,
- COMMIT_STATE_FRAME_IN_PROGRESS,
- COMMIT_STATE_READY_TO_COMMIT,
- COMMIT_STATE_WAITING_FOR_FIRST_DRAW,
- };
-
- enum TextureState {
- LAYER_TEXTURE_STATE_UNLOCKED,
- LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD,
- LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD,
- };
-
- enum ContextState {
- CONTEXT_ACTIVE,
- CONTEXT_LOST,
- CONTEXT_RECREATING,
- };
-
- bool commitPending() const
- {
- return m_commitState != COMMIT_STATE_IDLE;
- }
-
- bool redrawPending() const { return m_needsRedraw; }
-
- enum Action {
- ACTION_NONE,
- ACTION_BEGIN_FRAME,
- ACTION_COMMIT,
- ACTION_DRAW_IF_POSSIBLE,
- ACTION_DRAW_FORCED,
- ACTION_BEGIN_CONTEXT_RECREATION,
- ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD,
- };
- Action nextAction() const;
- void updateState(Action);
-
- // Indicates whether the scheduler needs a vsync callback in order to make
- // progress.
- bool vsyncCallbackNeeded() const;
-
- // Indicates that the system has entered and left a vsync callback.
- // The scheduler will not draw more than once in a given vsync callback.
- void didEnterVSync();
- void didLeaveVSync();
-
- // Indicates whether the LayerTreeHostImpl is visible.
- void setVisible(bool);
-
- // Indicates that a redraw is required, either due to the impl tree changing
- // or the screen being damaged and simply needing redisplay.
- void setNeedsRedraw();
-
- // As setNeedsRedraw(), but ensures the draw will definitely happen even if
- // we are not visible.
- void setNeedsForcedRedraw();
-
- // Indicates whether ACTION_DRAW_IF_POSSIBLE drew to the screen or not.
- void didDrawIfPossibleCompleted(bool success);
-
- // Indicates that a new commit flow needs to be performed, either to pull
- // updates from the main thread to the impl, or to push deltas from the impl
- // thread to main.
- void setNeedsCommit();
-
- // As setNeedsCommit(), but ensures the beginFrame will definitely happen even if
- // we are not visible.
- void setNeedsForcedCommit();
-
- // Call this only in response to receiving an ACTION_BEGIN_FRAME
- // from nextState. Indicates that all painting is complete.
- void beginFrameComplete();
-
- // Call this only in response to receiving an ACTION_BEGIN_FRAME
- // from nextState if the client rejects the beginFrame message.
- void beginFrameAborted();
-
- // Request exclusive access to the textures that back single buffered
- // layers on behalf of the main thread. Upon acqusition,
- // ACTION_DRAW_IF_POSSIBLE will not draw until the main thread releases the
- // textures to the impl thread by committing the layers.
- void setMainThreadNeedsLayerTextures();
-
- // Indicates whether we can successfully begin a frame at this time.
- void setCanBeginFrame(bool can) { m_canBeginFrame = can; }
-
- // Indicates whether drawing would, at this time, make sense.
- // canDraw can be used to supress flashes or checkerboarding
- // when such behavior would be undesirable.
- void setCanDraw(bool can) { m_canDraw = can; }
-
- void didLoseContext();
- void didRecreateContext();
-
- // Exposed for testing purposes.
- void setMaximumNumberOfFailedDrawsBeforeDrawIsForced(int);
-
- std::string toString();
-
-protected:
- bool shouldDrawForced() const;
- bool drawSuspendedUntilCommit() const;
- bool scheduledToDraw() const;
- bool shouldDraw() const;
- bool shouldAcquireLayerTexturesForMainThread() const;
- bool hasDrawnThisFrame() const;
-
- CommitState m_commitState;
-
- int m_currentFrameNumber;
- int m_lastFrameNumberWhereDrawWasCalled;
- int m_consecutiveFailedDraws;
- int m_maximumNumberOfFailedDrawsBeforeDrawIsForced;
- bool m_needsRedraw;
- bool m_needsForcedRedraw;
- bool m_needsForcedRedrawAfterNextCommit;
- bool m_needsCommit;
- bool m_needsForcedCommit;
- bool m_mainThreadNeedsLayerTextures;
- bool m_insideVSync;
- bool m_visible;
- bool m_canBeginFrame;
- bool m_canDraw;
- bool m_drawIfPossibleFailed;
- TextureState m_textureState;
- ContextState m_contextState;
-
- DISALLOW_COPY_AND_ASSIGN(CCSchedulerStateMachine);
-};
-
-}
-
-#endif // CCSchedulerStateMachine_h
+// Temporary forwarding header
+#include "cc/scheduler_state_machine.h"