summaryrefslogtreecommitdiffstats
path: root/cc/CCThreadProxy.cpp
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-30 20:03:38 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-30 20:03:38 +0000
commit23bbb41cbfef41530bd637d7fe46c1fb8f571133 (patch)
tree3118d3763fe490d57a47c3e938ad84b466bd595a /cc/CCThreadProxy.cpp
parent6de743ab3928a797cc16e97b8f8091f408b4a127 (diff)
downloadchromium_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.cpp26
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());