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

Side by Side Diff: Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp

Issue 10690121: Merge 121076 - [chromium] LayerRendererChromium is not getting visibility messages in single thread… (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */ 23 */
24 24
25 #include "config.h" 25 #include "config.h"
26 26
27 #include "cc/CCSchedulerStateMachine.h" 27 #include "cc/CCSchedulerStateMachine.h"
28 28
29 #include <stdio.h>
30
29 namespace WebCore { 31 namespace WebCore {
30 32
31 CCSchedulerStateMachine::CCSchedulerStateMachine() 33 CCSchedulerStateMachine::CCSchedulerStateMachine()
32 : m_commitState(COMMIT_STATE_IDLE) 34 : m_commitState(COMMIT_STATE_IDLE)
33 , m_currentFrameNumber(0) 35 , m_currentFrameNumber(0)
34 , m_lastFrameNumberWhereDrawWasCalled(-1) 36 , m_lastFrameNumberWhereDrawWasCalled(-1)
35 , m_needsRedraw(false) 37 , m_needsRedraw(false)
36 , m_needsForcedRedraw(false) 38 , m_needsForcedRedraw(false)
37 , m_needsCommit(false) 39 , m_needsCommit(false)
38 , m_needsForcedCommit(false) 40 , m_needsForcedCommit(false)
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 { 276 {
275 m_needsForcedCommit = true; 277 m_needsForcedCommit = true;
276 } 278 }
277 279
278 void CCSchedulerStateMachine::beginFrameComplete() 280 void CCSchedulerStateMachine::beginFrameComplete()
279 { 281 {
280 ASSERT(m_commitState == COMMIT_STATE_FRAME_IN_PROGRESS); 282 ASSERT(m_commitState == COMMIT_STATE_FRAME_IN_PROGRESS);
281 m_commitState = COMMIT_STATE_UPDATING_RESOURCES; 283 m_commitState = COMMIT_STATE_UPDATING_RESOURCES;
282 } 284 }
283 285
286 void CCSchedulerStateMachine::beginFrameAborted()
287 {
288 ASSERT(m_commitState == COMMIT_STATE_FRAME_IN_PROGRESS);
289 m_commitState = COMMIT_STATE_IDLE;
290 }
291
284 void CCSchedulerStateMachine::beginUpdateMoreResourcesComplete(bool morePending) 292 void CCSchedulerStateMachine::beginUpdateMoreResourcesComplete(bool morePending)
285 { 293 {
286 ASSERT(m_commitState == COMMIT_STATE_UPDATING_RESOURCES); 294 ASSERT(m_commitState == COMMIT_STATE_UPDATING_RESOURCES);
287 ASSERT(m_updateMoreResourcesPending); 295 ASSERT(m_updateMoreResourcesPending);
288 m_updateMoreResourcesPending = false; 296 m_updateMoreResourcesPending = false;
289 if (!morePending) 297 if (!morePending)
290 m_commitState = COMMIT_STATE_READY_TO_COMMIT; 298 m_commitState = COMMIT_STATE_READY_TO_COMMIT;
291 } 299 }
292 300
293 void CCSchedulerStateMachine::didLoseContext() 301 void CCSchedulerStateMachine::didLoseContext()
294 { 302 {
295 if (m_contextState == CONTEXT_LOST || m_contextState == CONTEXT_RECREATING) 303 if (m_contextState == CONTEXT_LOST || m_contextState == CONTEXT_RECREATING)
296 return; 304 return;
297 m_contextState = CONTEXT_LOST; 305 m_contextState = CONTEXT_LOST;
298 } 306 }
299 307
300 void CCSchedulerStateMachine::didRecreateContext() 308 void CCSchedulerStateMachine::didRecreateContext()
301 { 309 {
302 ASSERT(m_contextState == CONTEXT_RECREATING); 310 ASSERT(m_contextState == CONTEXT_RECREATING);
303 m_contextState = CONTEXT_ACTIVE; 311 m_contextState = CONTEXT_ACTIVE;
304 setNeedsCommit(); 312 setNeedsCommit();
305 } 313 }
306 314
307 } 315 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698