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

Side by Side Diff: cc/scheduler.cc

Issue 11189043: cc: Rename cc classes and members to match filenames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
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 #include "config.h" 5 #include "config.h"
6 6
7 #include "CCScheduler.h" 7 #include "CCScheduler.h"
8 8
9 #include "TraceEvent.h" 9 #include "TraceEvent.h"
10 #include <base/auto_reset.h> 10 #include <base/auto_reset.h>
11 11
12 namespace cc { 12 namespace cc {
13 13
14 CCScheduler::CCScheduler(CCSchedulerClient* client, scoped_ptr<CCFrameRateContro ller> frameRateController) 14 Scheduler::Scheduler(SchedulerClient* client, scoped_ptr<FrameRateController> fr ameRateController)
15 : m_client(client) 15 : m_client(client)
16 , m_frameRateController(frameRateController.Pass()) 16 , m_frameRateController(frameRateController.Pass())
17 , m_insideProcessScheduledActions(false) 17 , m_insideProcessScheduledActions(false)
18 { 18 {
19 ASSERT(m_client); 19 ASSERT(m_client);
20 m_frameRateController->setClient(this); 20 m_frameRateController->setClient(this);
21 ASSERT(!m_stateMachine.vsyncCallbackNeeded()); 21 ASSERT(!m_stateMachine.vsyncCallbackNeeded());
22 } 22 }
23 23
24 CCScheduler::~CCScheduler() 24 Scheduler::~Scheduler()
25 { 25 {
26 m_frameRateController->setActive(false); 26 m_frameRateController->setActive(false);
27 } 27 }
28 28
29 void CCScheduler::setCanBeginFrame(bool can) 29 void Scheduler::setCanBeginFrame(bool can)
30 { 30 {
31 m_stateMachine.setCanBeginFrame(can); 31 m_stateMachine.setCanBeginFrame(can);
32 processScheduledActions(); 32 processScheduledActions();
33 } 33 }
34 34
35 void CCScheduler::setVisible(bool visible) 35 void Scheduler::setVisible(bool visible)
36 { 36 {
37 m_stateMachine.setVisible(visible); 37 m_stateMachine.setVisible(visible);
38 processScheduledActions(); 38 processScheduledActions();
39 } 39 }
40 40
41 void CCScheduler::setCanDraw(bool canDraw) 41 void Scheduler::setCanDraw(bool canDraw)
42 { 42 {
43 m_stateMachine.setCanDraw(canDraw); 43 m_stateMachine.setCanDraw(canDraw);
44 processScheduledActions(); 44 processScheduledActions();
45 } 45 }
46 46
47 void CCScheduler::setNeedsCommit() 47 void Scheduler::setNeedsCommit()
48 { 48 {
49 m_stateMachine.setNeedsCommit(); 49 m_stateMachine.setNeedsCommit();
50 processScheduledActions(); 50 processScheduledActions();
51 } 51 }
52 52
53 void CCScheduler::setNeedsForcedCommit() 53 void Scheduler::setNeedsForcedCommit()
54 { 54 {
55 m_stateMachine.setNeedsForcedCommit(); 55 m_stateMachine.setNeedsForcedCommit();
56 processScheduledActions(); 56 processScheduledActions();
57 } 57 }
58 58
59 void CCScheduler::setNeedsRedraw() 59 void Scheduler::setNeedsRedraw()
60 { 60 {
61 m_stateMachine.setNeedsRedraw(); 61 m_stateMachine.setNeedsRedraw();
62 processScheduledActions(); 62 processScheduledActions();
63 } 63 }
64 64
65 void CCScheduler::setNeedsForcedRedraw() 65 void Scheduler::setNeedsForcedRedraw()
66 { 66 {
67 m_stateMachine.setNeedsForcedRedraw(); 67 m_stateMachine.setNeedsForcedRedraw();
68 processScheduledActions(); 68 processScheduledActions();
69 } 69 }
70 70
71 void CCScheduler::setMainThreadNeedsLayerTextures() 71 void Scheduler::setMainThreadNeedsLayerTextures()
72 { 72 {
73 m_stateMachine.setMainThreadNeedsLayerTextures(); 73 m_stateMachine.setMainThreadNeedsLayerTextures();
74 processScheduledActions(); 74 processScheduledActions();
75 } 75 }
76 76
77 void CCScheduler::beginFrameComplete() 77 void Scheduler::beginFrameComplete()
78 { 78 {
79 TRACE_EVENT0("cc", "CCScheduler::beginFrameComplete"); 79 TRACE_EVENT0("cc", "Scheduler::beginFrameComplete");
80 m_stateMachine.beginFrameComplete(); 80 m_stateMachine.beginFrameComplete();
81 processScheduledActions(); 81 processScheduledActions();
82 } 82 }
83 83
84 void CCScheduler::beginFrameAborted() 84 void Scheduler::beginFrameAborted()
85 { 85 {
86 TRACE_EVENT0("cc", "CCScheduler::beginFrameAborted"); 86 TRACE_EVENT0("cc", "Scheduler::beginFrameAborted");
87 m_stateMachine.beginFrameAborted(); 87 m_stateMachine.beginFrameAborted();
88 processScheduledActions(); 88 processScheduledActions();
89 } 89 }
90 90
91 void CCScheduler::setMaxFramesPending(int maxFramesPending) 91 void Scheduler::setMaxFramesPending(int maxFramesPending)
92 { 92 {
93 m_frameRateController->setMaxFramesPending(maxFramesPending); 93 m_frameRateController->setMaxFramesPending(maxFramesPending);
94 } 94 }
95 95
96 void CCScheduler::setSwapBuffersCompleteSupported(bool supported) 96 void Scheduler::setSwapBuffersCompleteSupported(bool supported)
97 { 97 {
98 m_frameRateController->setSwapBuffersCompleteSupported(supported); 98 m_frameRateController->setSwapBuffersCompleteSupported(supported);
99 } 99 }
100 100
101 void CCScheduler::didSwapBuffersComplete() 101 void Scheduler::didSwapBuffersComplete()
102 { 102 {
103 TRACE_EVENT0("cc", "CCScheduler::didSwapBuffersComplete"); 103 TRACE_EVENT0("cc", "Scheduler::didSwapBuffersComplete");
104 m_frameRateController->didFinishFrame(); 104 m_frameRateController->didFinishFrame();
105 } 105 }
106 106
107 void CCScheduler::didLoseContext() 107 void Scheduler::didLoseContext()
108 { 108 {
109 TRACE_EVENT0("cc", "CCScheduler::didLoseContext"); 109 TRACE_EVENT0("cc", "Scheduler::didLoseContext");
110 m_frameRateController->didAbortAllPendingFrames(); 110 m_frameRateController->didAbortAllPendingFrames();
111 m_stateMachine.didLoseContext(); 111 m_stateMachine.didLoseContext();
112 processScheduledActions(); 112 processScheduledActions();
113 } 113 }
114 114
115 void CCScheduler::didRecreateContext() 115 void Scheduler::didRecreateContext()
116 { 116 {
117 TRACE_EVENT0("cc", "CCScheduler::didRecreateContext"); 117 TRACE_EVENT0("cc", "Scheduler::didRecreateContext");
118 m_stateMachine.didRecreateContext(); 118 m_stateMachine.didRecreateContext();
119 processScheduledActions(); 119 processScheduledActions();
120 } 120 }
121 121
122 void CCScheduler::setTimebaseAndInterval(base::TimeTicks timebase, base::TimeDel ta interval) 122 void Scheduler::setTimebaseAndInterval(base::TimeTicks timebase, base::TimeDelta interval)
123 { 123 {
124 m_frameRateController->setTimebaseAndInterval(timebase, interval); 124 m_frameRateController->setTimebaseAndInterval(timebase, interval);
125 } 125 }
126 126
127 base::TimeTicks CCScheduler::anticipatedDrawTime() 127 base::TimeTicks Scheduler::anticipatedDrawTime()
128 { 128 {
129 return m_frameRateController->nextTickTime(); 129 return m_frameRateController->nextTickTime();
130 } 130 }
131 131
132 void CCScheduler::vsyncTick(bool throttled) 132 void Scheduler::vsyncTick(bool throttled)
133 { 133 {
134 TRACE_EVENT1("cc", "CCScheduler::vsyncTick", "throttled", throttled); 134 TRACE_EVENT1("cc", "Scheduler::vsyncTick", "throttled", throttled);
135 if (!throttled) 135 if (!throttled)
136 m_stateMachine.didEnterVSync(); 136 m_stateMachine.didEnterVSync();
137 processScheduledActions(); 137 processScheduledActions();
138 if (!throttled) 138 if (!throttled)
139 m_stateMachine.didLeaveVSync(); 139 m_stateMachine.didLeaveVSync();
140 } 140 }
141 141
142 void CCScheduler::processScheduledActions() 142 void Scheduler::processScheduledActions()
143 { 143 {
144 // We do not allow processScheduledActions to be recursive. 144 // We do not allow processScheduledActions to be recursive.
145 // The top-level call will iteratively execute the next action for us anyway . 145 // The top-level call will iteratively execute the next action for us anyway .
146 if (m_insideProcessScheduledActions) 146 if (m_insideProcessScheduledActions)
147 return; 147 return;
148 148
149 AutoReset<bool> markInside(&m_insideProcessScheduledActions, true); 149 AutoReset<bool> markInside(&m_insideProcessScheduledActions, true);
150 150
151 CCSchedulerStateMachine::Action action = m_stateMachine.nextAction(); 151 SchedulerStateMachine::Action action = m_stateMachine.nextAction();
152 while (action != CCSchedulerStateMachine::ACTION_NONE) { 152 while (action != SchedulerStateMachine::ACTION_NONE) {
153 m_stateMachine.updateState(action); 153 m_stateMachine.updateState(action);
154 TRACE_EVENT1("cc", "CCScheduler::processScheduledActions()", "action", a ction); 154 TRACE_EVENT1("cc", "Scheduler::processScheduledActions()", "action", act ion);
155 155
156 switch (action) { 156 switch (action) {
157 case CCSchedulerStateMachine::ACTION_NONE: 157 case SchedulerStateMachine::ACTION_NONE:
158 break; 158 break;
159 case CCSchedulerStateMachine::ACTION_BEGIN_FRAME: 159 case SchedulerStateMachine::ACTION_BEGIN_FRAME:
160 m_client->scheduledActionBeginFrame(); 160 m_client->scheduledActionBeginFrame();
161 break; 161 break;
162 case CCSchedulerStateMachine::ACTION_COMMIT: 162 case SchedulerStateMachine::ACTION_COMMIT:
163 m_client->scheduledActionCommit(); 163 m_client->scheduledActionCommit();
164 break; 164 break;
165 case CCSchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: { 165 case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: {
166 CCScheduledActionDrawAndSwapResult result = m_client->scheduledActio nDrawAndSwapIfPossible(); 166 ScheduledActionDrawAndSwapResult result = m_client->scheduledActionD rawAndSwapIfPossible();
167 m_stateMachine.didDrawIfPossibleCompleted(result.didDraw); 167 m_stateMachine.didDrawIfPossibleCompleted(result.didDraw);
168 if (result.didSwap) 168 if (result.didSwap)
169 m_frameRateController->didBeginFrame(); 169 m_frameRateController->didBeginFrame();
170 break; 170 break;
171 } 171 }
172 case CCSchedulerStateMachine::ACTION_DRAW_FORCED: { 172 case SchedulerStateMachine::ACTION_DRAW_FORCED: {
173 CCScheduledActionDrawAndSwapResult result = m_client->scheduledActio nDrawAndSwapForced(); 173 ScheduledActionDrawAndSwapResult result = m_client->scheduledActionD rawAndSwapForced();
174 if (result.didSwap) 174 if (result.didSwap)
175 m_frameRateController->didBeginFrame(); 175 m_frameRateController->didBeginFrame();
176 break; 176 break;
177 } case CCSchedulerStateMachine::ACTION_BEGIN_CONTEXT_RECREATION: 177 } case SchedulerStateMachine::ACTION_BEGIN_CONTEXT_RECREATION:
178 m_client->scheduledActionBeginContextRecreation(); 178 m_client->scheduledActionBeginContextRecreation();
179 break; 179 break;
180 case CCSchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THR EAD: 180 case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREA D:
181 m_client->scheduledActionAcquireLayerTexturesForMainThread(); 181 m_client->scheduledActionAcquireLayerTexturesForMainThread();
182 break; 182 break;
183 } 183 }
184 action = m_stateMachine.nextAction(); 184 action = m_stateMachine.nextAction();
185 } 185 }
186 186
187 // Activate or deactivate the frame rate controller. 187 // Activate or deactivate the frame rate controller.
188 m_frameRateController->setActive(m_stateMachine.vsyncCallbackNeeded()); 188 m_frameRateController->setActive(m_stateMachine.vsyncCallbackNeeded());
189 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime() ); 189 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime() );
190 } 190 }
191 191
192 } // namespace cc 192 } // namespace cc
OLDNEW
« cc/active_animation.h ('K') | « cc/scheduler.h ('k') | cc/scheduler_state_machine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698