diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-30 20:03:38 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-30 20:03:38 +0000 |
commit | 23bbb41cbfef41530bd637d7fe46c1fb8f571133 (patch) | |
tree | 3118d3763fe490d57a47c3e938ad84b466bd595a /cc/CCThreadProxy.cpp | |
parent | 6de743ab3928a797cc16e97b8f8091f408b4a127 (diff) | |
download | chromium_src-23bbb41cbfef41530bd637d7fe46c1fb8f571133.zip chromium_src-23bbb41cbfef41530bd637d7fe46c1fb8f571133.tar.gz chromium_src-23bbb41cbfef41530bd637d7fe46c1fb8f571133.tar.bz2 |
Roll CC snapshot up to WK r127064
TBR=nduca@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/10889048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154239 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/CCThreadProxy.cpp')
-rw-r--r-- | cc/CCThreadProxy.cpp | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/cc/CCThreadProxy.cpp b/cc/CCThreadProxy.cpp index e90f3fe..0984b3c 100644 --- a/cc/CCThreadProxy.cpp +++ b/cc/CCThreadProxy.cpp @@ -14,7 +14,6 @@ #include "CCLayerTreeHost.h" #include "CCScheduler.h" #include "CCScopedThreadProxy.h" -#include "CCTextureUpdateController.h" #include "CCThreadTask.h" #include "TraceEvent.h" #include <public/WebSharedGraphicsContext3D.h> @@ -294,7 +293,8 @@ void CCThreadProxy::didLoseContextOnImplThread() { ASSERT(isImplThread()); TRACE_EVENT0("cc", "CCThreadProxy::didLoseContextOnImplThread"); - m_currentTextureUpdateControllerOnImplThread.clear(); + if (m_currentTextureUpdateControllerOnImplThread) + m_currentTextureUpdateControllerOnImplThread->discardUploads(); m_schedulerOnImplThread->didLoseContext(); } @@ -309,7 +309,7 @@ void CCThreadProxy::onSwapBuffersCompleteOnImplThread() void CCThreadProxy::onVSyncParametersChanged(double monotonicTimebase, double intervalInSeconds) { ASSERT(isImplThread()); - TRACE_EVENT0("cc", "CCThreadProxy::onVSyncParametersChanged"); + TRACE_EVENT2("cc", "CCThreadProxy::onVSyncParametersChanged", "monotonicTimebase", monotonicTimebase, "intervalInSeconds", intervalInSeconds); m_schedulerOnImplThread->setTimebaseAndInterval(monotonicTimebase, intervalInSeconds); } @@ -558,10 +558,12 @@ void CCThreadProxy::beginFrameCompleteOnImplThread(CCCompletionEvent* completion } else m_resetContentsTexturesPurgedAfterCommitOnImplThread = true; - m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader()); + bool hasResourceUpdates = queue->hasMoreUpdates(); + if (hasResourceUpdates) + m_currentTextureUpdateControllerOnImplThread = CCTextureUpdateController::create(this, CCProxy::implThread(), queue, m_layerTreeHostImpl->resourceProvider(), m_layerTreeHostImpl->renderer()->textureCopier(), m_layerTreeHostImpl->renderer()->textureUploader()); m_commitCompletionEventOnImplThread = completion; - m_schedulerOnImplThread->beginFrameComplete(); + m_schedulerOnImplThread->beginFrameComplete(hasResourceUpdates); } void CCThreadProxy::beginFrameAbortedOnImplThread() @@ -574,13 +576,6 @@ void CCThreadProxy::beginFrameAbortedOnImplThread() m_schedulerOnImplThread->beginFrameAborted(); } -bool CCThreadProxy::hasMoreResourceUpdates() const -{ - if (!m_currentTextureUpdateControllerOnImplThread) - return false; - return m_currentTextureUpdateControllerOnImplThread->hasMoreUpdates(); -} - bool CCThreadProxy::canDraw() { ASSERT(isImplThread()); @@ -600,7 +595,6 @@ void CCThreadProxy::scheduledActionCommit() { TRACE_EVENT0("cc", "CCThreadProxy::scheduledActionCommit"); ASSERT(isImplThread()); - ASSERT(!hasMoreResourceUpdates()); ASSERT(m_commitCompletionEventOnImplThread); m_currentTextureUpdateControllerOnImplThread.clear(); @@ -738,6 +732,12 @@ CCScheduledActionDrawAndSwapResult CCThreadProxy::scheduledActionDrawAndSwapForc return scheduledActionDrawAndSwapInternal(true); } +void CCThreadProxy::updateTexturesCompleted() +{ + ASSERT(isImplThread()); + m_schedulerOnImplThread->updateResourcesComplete(); +} + void CCThreadProxy::didCommitAndDrawFrame() { ASSERT(isMainThread()); |