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

Side by Side Diff: cc/thread_proxy.cc

Issue 11783037: Not for review: Enable accelerated animations for orphaned layers (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Wait for layout to complete before starting orphaned animations Created 7 years, 10 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
« no previous file with comments | « cc/thread_proxy.h ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "cc/thread_proxy.h" 5 #include "cc/thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/delay_based_time_source.h" 10 #include "cc/delay_based_time_source.h"
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 } 556 }
557 557
558 m_beginFrameCompletionEventOnImplThread = completion; 558 m_beginFrameCompletionEventOnImplThread = completion;
559 } 559 }
560 560
561 void ThreadProxy::scheduledActionBeginFrame() 561 void ThreadProxy::scheduledActionBeginFrame()
562 { 562 {
563 TRACE_EVENT0("cc", "ThreadProxy::scheduledActionBeginFrame"); 563 TRACE_EVENT0("cc", "ThreadProxy::scheduledActionBeginFrame");
564 scoped_ptr<BeginFrameAndCommitState> beginFrameState(new BeginFrameAndCommit State); 564 scoped_ptr<BeginFrameAndCommitState> beginFrameState(new BeginFrameAndCommit State);
565 beginFrameState->monotonicFrameBeginTime = base::TimeTicks::Now(); 565 beginFrameState->monotonicFrameBeginTime = base::TimeTicks::Now();
566 beginFrameState->wallClockFrameBeginTime = base::Time::Now();
566 beginFrameState->scrollInfo = m_layerTreeHostImpl->processScrollDeltas(); 567 beginFrameState->scrollInfo = m_layerTreeHostImpl->processScrollDeltas();
567 beginFrameState->implTransform = m_layerTreeHostImpl->activeTree()->ImplTran sform(); 568 beginFrameState->implTransform = m_layerTreeHostImpl->activeTree()->ImplTran sform();
568 DCHECK_GT(m_layerTreeHostImpl->memoryAllocationLimitBytes(), 0u); 569 DCHECK_GT(m_layerTreeHostImpl->memoryAllocationLimitBytes(), 0u);
569 beginFrameState->memoryAllocationLimitBytes = m_layerTreeHostImpl->memoryAll ocationLimitBytes(); 570 beginFrameState->memoryAllocationLimitBytes = m_layerTreeHostImpl->memoryAll ocationLimitBytes();
570 Proxy::mainThread()->postTask(base::Bind(&ThreadProxy::beginFrame, m_mainThr eadWeakPtr, base::Passed(&beginFrameState))); 571 Proxy::mainThread()->postTask(base::Bind(&ThreadProxy::beginFrame, m_mainThr eadWeakPtr, base::Passed(&beginFrameState)));
571 572
572 if (m_beginFrameCompletionEventOnImplThread) { 573 if (m_beginFrameCompletionEventOnImplThread) {
573 m_beginFrameCompletionEventOnImplThread->signal(); 574 m_beginFrameCompletionEventOnImplThread->signal();
574 m_beginFrameCompletionEventOnImplThread = 0; 575 m_beginFrameCompletionEventOnImplThread = 0;
575 } 576 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 m_commitRequestSentToImplThread = false; 616 m_commitRequestSentToImplThread = false;
616 617
617 TRACE_EVENT0("cc", "EarlyOut_NotVisible"); 618 TRACE_EVENT0("cc", "EarlyOut_NotVisible");
618 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::beginFrameAborted OnImplThread, m_implThreadWeakPtr)); 619 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::beginFrameAborted OnImplThread, m_implThreadWeakPtr));
619 return; 620 return;
620 } 621 }
621 622
622 m_layerTreeHost->willBeginFrame(); 623 m_layerTreeHost->willBeginFrame();
623 624
624 if (beginFrameState) 625 if (beginFrameState)
625 m_layerTreeHost->updateAnimations(beginFrameState->monotonicFrameBeginTi me); 626 m_layerTreeHost->updateAnimations(beginFrameState->monotonicFrameBeginTi me, beginFrameState->wallClockFrameBeginTime);
626 627
627 // Unlink any backings that the impl thread has evicted, so that we know to re-paint 628 // Unlink any backings that the impl thread has evicted, so that we know to re-paint
628 // them in updateLayers. 629 // them in updateLayers.
629 if (m_layerTreeHost->contentsTextureManager()) 630 if (m_layerTreeHost->contentsTextureManager())
630 m_layerTreeHost->contentsTextureManager()->unlinkAndClearEvictedBackings (); 631 m_layerTreeHost->contentsTextureManager()->unlinkAndClearEvictedBackings ();
631 632
632 m_layerTreeHost->layout(); 633 m_layerTreeHost->layout();
633 634
634 // Clear the commit flag after updating animations and layout here --- objec ts that only 635 // Clear the commit flag after updating animations and layout here --- objec ts that only
635 // layout when painted will trigger another setNeedsCommit inside 636 // layout when painted will trigger another setNeedsCommit inside
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
1174 1175
1175 void ThreadProxy::renewTreePriorityOnImplThread() 1176 void ThreadProxy::renewTreePriorityOnImplThread()
1176 { 1177 {
1177 DCHECK(m_renewTreePriorityOnImplThreadPending); 1178 DCHECK(m_renewTreePriorityOnImplThreadPending);
1178 m_renewTreePriorityOnImplThreadPending = false; 1179 m_renewTreePriorityOnImplThreadPending = false;
1179 1180
1180 renewTreePriority(); 1181 renewTreePriority();
1181 } 1182 }
1182 1183
1183 } // namespace cc 1184 } // namespace cc
OLDNEW
« no previous file with comments | « cc/thread_proxy.h ('k') | content/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698