| 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 "CCSingleThreadProxy.h" |    7 #include "CCSingleThreadProxy.h" | 
|    8  |    8  | 
|    9 #include "CCDrawQuad.h" |    9 #include "CCDrawQuad.h" | 
|   10 #include "CCGraphicsContext.h" |   10 #include "CCGraphicsContext.h" | 
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  248     m_layerTreeHost = 0; |  248     m_layerTreeHost = 0; | 
|  249 } |  249 } | 
|  250  |  250  | 
|  251 void CCSingleThreadProxy::postAnimationEventsToMainThreadOnImplThread(PassOwnPtr
     <CCAnimationEventsVector> events, double wallClockTime) |  251 void CCSingleThreadProxy::postAnimationEventsToMainThreadOnImplThread(PassOwnPtr
     <CCAnimationEventsVector> events, double wallClockTime) | 
|  252 { |  252 { | 
|  253     ASSERT(CCProxy::isImplThread()); |  253     ASSERT(CCProxy::isImplThread()); | 
|  254     DebugScopedSetMainThread main; |  254     DebugScopedSetMainThread main; | 
|  255     m_layerTreeHost->setAnimationEvents(events, wallClockTime); |  255     m_layerTreeHost->setAnimationEvents(events, wallClockTime); | 
|  256 } |  256 } | 
|  257  |  257  | 
 |  258 void CCSingleThreadProxy::releaseContentsTexturesOnImplThread() | 
 |  259 { | 
 |  260     ASSERT(isImplThread()); | 
 |  261     m_layerTreeHost->reduceContentsTexturesMemoryOnImplThread(0, m_layerTreeHost
     Impl->resourceProvider()); | 
 |  262 } | 
 |  263  | 
|  258 // Called by the legacy scheduling path (e.g. where render_widget does the sched
     uling) |  264 // Called by the legacy scheduling path (e.g. where render_widget does the sched
     uling) | 
|  259 void CCSingleThreadProxy::compositeImmediately() |  265 void CCSingleThreadProxy::compositeImmediately() | 
|  260 { |  266 { | 
|  261     if (commitAndComposite()) { |  267     if (commitAndComposite()) { | 
|  262         m_layerTreeHostImpl->swapBuffers(); |  268         m_layerTreeHostImpl->swapBuffers(); | 
|  263         didSwapFrame(); |  269         didSwapFrame(); | 
|  264     } |  270     } | 
|  265 } |  271 } | 
|  266  |  272  | 
|  267 void CCSingleThreadProxy::forceSerializeOnSwapBuffers() |  273 void CCSingleThreadProxy::forceSerializeOnSwapBuffers() | 
|  268 { |  274 { | 
|  269     { |  275     { | 
|  270         DebugScopedSetImplThread impl; |  276         DebugScopedSetImplThread impl; | 
|  271         if (m_rendererInitialized) |  277         if (m_rendererInitialized) | 
|  272             m_layerTreeHostImpl->renderer()->doNoOp(); |  278             m_layerTreeHostImpl->renderer()->doNoOp(); | 
|  273     } |  279     } | 
|  274 } |  280 } | 
|  275  |  281  | 
|  276 bool CCSingleThreadProxy::commitAndComposite() |  282 bool CCSingleThreadProxy::commitAndComposite() | 
|  277 { |  283 { | 
|  278     ASSERT(CCProxy::isMainThread()); |  284     ASSERT(CCProxy::isMainThread()); | 
|  279  |  285  | 
|  280     if (!m_layerTreeHost->initializeRendererIfNeeded()) |  286     if (!m_layerTreeHost->initializeRendererIfNeeded()) | 
|  281         return false; |  287         return false; | 
|  282  |  288  | 
|  283     if (m_layerTreeHostImpl->contentsTexturesPurged()) { |  289     // Unlink any texture backings that were deleted | 
|  284         m_layerTreeHost->unlinkAllContentTextures(); |  290     CCPrioritizedTextureManager::BackingVector evictedContentsTexturesBackings; | 
 |  291     { | 
 |  292         DebugScopedSetImplThread implThread; | 
 |  293         m_layerTreeHost->getEvictedContentTexturesBackings(evictedContentsTextur
     esBackings); | 
 |  294     } | 
 |  295     m_layerTreeHost->unlinkEvictedContentTexturesBackings(evictedContentsTexture
     sBackings); | 
 |  296     { | 
|  285         DebugScopedSetImplThreadAndMainThreadBlocked implAndMainBlocked; |  297         DebugScopedSetImplThreadAndMainThreadBlocked implAndMainBlocked; | 
|  286         m_layerTreeHost->deleteUnlinkedTextures(); |  298         m_layerTreeHost->deleteEvictedContentTexturesBackings(); | 
|  287     } |  299     } | 
|  288  |  300  | 
|  289     CCTextureUpdateQueue queue; |  301     CCTextureUpdateQueue queue; | 
|  290     m_layerTreeHost->updateLayers(queue, m_layerTreeHostImpl->memoryAllocationLi
     mitBytes()); |  302     m_layerTreeHost->updateLayers(queue, m_layerTreeHostImpl->memoryAllocationLi
     mitBytes()); | 
|  291     m_layerTreeHostImpl->resetContentsTexturesPurged(); |  303  | 
 |  304     if (m_layerTreeHostImpl->contentsTexturesPurged()) | 
 |  305         m_layerTreeHostImpl->resetContentsTexturesPurged(); | 
|  292  |  306  | 
|  293     m_layerTreeHost->willCommit(); |  307     m_layerTreeHost->willCommit(); | 
|  294     doCommit(queue); |  308     doCommit(queue); | 
|  295     bool result = doComposite(); |  309     bool result = doComposite(); | 
|  296     m_layerTreeHost->didBeginFrame(); |  310     m_layerTreeHost->didBeginFrame(); | 
|  297     return result; |  311     return result; | 
|  298 } |  312 } | 
|  299  |  313  | 
|  300 bool CCSingleThreadProxy::doComposite() |  314 bool CCSingleThreadProxy::doComposite() | 
|  301 { |  315 { | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  333  |  347  | 
|  334 void CCSingleThreadProxy::didSwapFrame() |  348 void CCSingleThreadProxy::didSwapFrame() | 
|  335 { |  349 { | 
|  336     if (m_nextFrameIsNewlyCommittedFrame) { |  350     if (m_nextFrameIsNewlyCommittedFrame) { | 
|  337         m_nextFrameIsNewlyCommittedFrame = false; |  351         m_nextFrameIsNewlyCommittedFrame = false; | 
|  338         m_layerTreeHost->didCommitAndDrawFrame(); |  352         m_layerTreeHost->didCommitAndDrawFrame(); | 
|  339     } |  353     } | 
|  340 } |  354 } | 
|  341  |  355  | 
|  342 } |  356 } | 
| OLD | NEW |