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 "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, PassOwnPtr<CCFrameRateContro
ller> frameRateController) | 14 CCScheduler::CCScheduler(CCSchedulerClient* client, PassOwnPtr<CCFrameRateContro
ller> frameRateController) |
15 : m_client(client) | 15 : m_client(client) |
16 , m_frameRateController(frameRateController) | 16 , m_frameRateController(frameRateController) |
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 CCScheduler::~CCScheduler() |
25 { | 25 { |
26 m_frameRateController->setActive(false); | 26 m_frameRateController->setActive(false, false); |
27 } | 27 } |
28 | 28 |
29 void CCScheduler::setCanBeginFrame(bool can) | 29 void CCScheduler::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 CCScheduler::setVisible(bool visible) |
36 { | 36 { |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 CCSchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THR
EAD: |
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_stateMachine.commitPending()); |
189 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime()
); | 190 m_client->didAnticipatedDrawTimeChange(m_frameRateController->nextTickTime()
); |
190 } | 191 } |
191 | 192 |
| 193 void CCScheduler::renderingStats(CCRenderingStats* stats) const |
| 194 { |
| 195 m_frameRateController->renderingStats(stats); |
192 } | 196 } |
| 197 |
| 198 } |
OLD | NEW |