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

Unified Diff: cc/scheduler/scheduler.h

Issue 23503003: cc: Add readback and forced draw states to the Scheduler (Closed) Base URL: http://git.chromium.org/chromium/src.git@schedReorg3
Patch Set: Address enne's commetns 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | cc/scheduler/scheduler.cc » ('j') | cc/scheduler/scheduler_state_machine.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler.h
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index 9932079676012b803652876aafabef62aece3757..c573af7ed71749a5b090327146feef8f9f731a38 100644
--- a/cc/scheduler/scheduler.h
+++ b/cc/scheduler/scheduler.h
@@ -20,25 +20,23 @@ namespace cc {
class Thread;
-struct ScheduledActionDrawAndSwapResult {
- ScheduledActionDrawAndSwapResult()
- : did_draw(false),
- did_swap(false) {}
- ScheduledActionDrawAndSwapResult(bool did_draw, bool did_swap)
- : did_draw(did_draw),
- did_swap(did_swap) {}
+struct DrawSwapReadbackResult {
+ DrawSwapReadbackResult()
+ : did_draw(false), did_swap(false), did_readback(false) {}
+ DrawSwapReadbackResult(bool did_draw, bool did_swap, bool did_readback)
+ : did_draw(did_draw), did_swap(did_swap), did_readback(did_readback) {}
bool did_draw;
bool did_swap;
+ bool did_readback;
};
class SchedulerClient {
public:
virtual void SetNeedsBeginFrameOnImplThread(bool enable) = 0;
virtual void ScheduledActionSendBeginFrameToMainThread() = 0;
- virtual ScheduledActionDrawAndSwapResult
- ScheduledActionDrawAndSwapIfPossible() = 0;
- virtual ScheduledActionDrawAndSwapResult
- ScheduledActionDrawAndSwapForced() = 0;
+ virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapIfPossible() = 0;
+ virtual DrawSwapReadbackResult ScheduledActionDrawAndSwapForced() = 0;
+ virtual DrawSwapReadbackResult ScheduledActionDrawAndReadback() = 0;
virtual void ScheduledActionCommit() = 0;
virtual void ScheduledActionUpdateVisibleTiles() = 0;
virtual void ScheduledActionActivatePendingTree() = 0;
@@ -72,17 +70,13 @@ class CC_EXPORT Scheduler {
void SetNeedsCommit();
// Like SetNeedsCommit(), but ensures a commit will definitely happen even if
- // we are not visible.
- void SetNeedsForcedCommit();
+ // we are not visible. Will eventually result in a forced draw internally.
+ void SetNeedsForcedCommitForReadback();
void SetNeedsRedraw();
void SetMainThreadNeedsLayerTextures();
- // Like SetNeedsRedraw(), but ensures the draw will definitely happen even if
- // we are not visible.
- void SetNeedsForcedRedraw();
-
void DidSwapUseIncompleteTile();
void FinishCommit();
@@ -116,6 +110,7 @@ class CC_EXPORT Scheduler {
void SetupNextBeginFrameIfNeeded();
void DrawAndSwapIfPossible();
void DrawAndSwapForced();
+ void DrawAndReadback();
void ProcessScheduledActions();
const SchedulerSettings settings_;
« no previous file with comments | « no previous file | cc/scheduler/scheduler.cc » ('j') | cc/scheduler/scheduler_state_machine.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698