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

Side by Side Diff: cc/CCLayerTreeHostImpl.cpp

Issue 10907075: Roll cc snapshot up to 127605 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « cc/CCLayerTreeHostImpl.h ('k') | cc/CCLayerTreeHostImplTest.cpp » ('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 "config.h" 5 #include "config.h"
6 6
7 #include "CCLayerTreeHostImpl.h" 7 #include "CCLayerTreeHostImpl.h"
8 8
9 #include "CCActiveGestureAnimation.h" 9 #include "CCActiveGestureAnimation.h"
10 #include "CCAppendQuadsData.h" 10 #include "CCAppendQuadsData.h"
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 void CCLayerTreeHostImpl::commitComplete() 141 void CCLayerTreeHostImpl::commitComplete()
142 { 142 {
143 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::commitComplete"); 143 TRACE_EVENT0("cc", "CCLayerTreeHostImpl::commitComplete");
144 // Recompute max scroll position; must be after layer content bounds are 144 // Recompute max scroll position; must be after layer content bounds are
145 // updated. 145 // updated.
146 updateMaxScrollPosition(); 146 updateMaxScrollPosition();
147 } 147 }
148 148
149 bool CCLayerTreeHostImpl::canDraw() 149 bool CCLayerTreeHostImpl::canDraw()
150 { 150 {
151 // Note: If you are changing this function or any other function that might
152 // affect the result of canDraw, make sure to call m_client->onCanDrawStateC hanged
153 // in the proper places and update the notifyIfCanDrawChanged test.
154
151 if (!m_rootLayerImpl) { 155 if (!m_rootLayerImpl) {
152 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no root layer") ; 156 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no root layer") ;
153 return false; 157 return false;
154 } 158 }
155 if (deviceViewportSize().isEmpty()) { 159 if (deviceViewportSize().isEmpty()) {
156 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw empty viewport" ); 160 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw empty viewport" );
157 return false; 161 return false;
158 } 162 }
159 if (!m_renderer) { 163 if (!m_renderer) {
160 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no renderer"); 164 TRACE_EVENT_INSTANT0("cc", "CCLayerTreeHostImpl::canDraw no renderer");
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 return true; 507 return true;
504 } 508 }
505 509
506 void CCLayerTreeHostImpl::releaseContentsTextures() 510 void CCLayerTreeHostImpl::releaseContentsTextures()
507 { 511 {
508 if (m_contentsTexturesPurged) 512 if (m_contentsTexturesPurged)
509 return; 513 return;
510 m_resourceProvider->deleteOwnedResources(CCRenderer::ContentPool); 514 m_resourceProvider->deleteOwnedResources(CCRenderer::ContentPool);
511 m_contentsTexturesPurged = true; 515 m_contentsTexturesPurged = true;
512 m_client->setNeedsCommitOnImplThread(); 516 m_client->setNeedsCommitOnImplThread();
517 m_client->onCanDrawStateChanged(canDraw());
513 } 518 }
514 519
515 void CCLayerTreeHostImpl::setMemoryAllocationLimitBytes(size_t bytes) 520 void CCLayerTreeHostImpl::setMemoryAllocationLimitBytes(size_t bytes)
516 { 521 {
517 if (m_memoryAllocationLimitBytes == bytes) 522 if (m_memoryAllocationLimitBytes == bytes)
518 return; 523 return;
519 m_memoryAllocationLimitBytes = bytes; 524 m_memoryAllocationLimitBytes = bytes;
520 525
521 ASSERT(bytes); 526 ASSERT(bytes);
522 m_client->setNeedsCommitOnImplThread(); 527 m_client->setNeedsCommitOnImplThread();
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 void CCLayerTreeHostImpl::setRootLayer(PassOwnPtr<CCLayerImpl> layer) 647 void CCLayerTreeHostImpl::setRootLayer(PassOwnPtr<CCLayerImpl> layer)
643 { 648 {
644 m_rootLayerImpl = layer; 649 m_rootLayerImpl = layer;
645 m_rootScrollLayerImpl = findRootScrollLayer(m_rootLayerImpl.get()); 650 m_rootScrollLayerImpl = findRootScrollLayer(m_rootLayerImpl.get());
646 m_currentlyScrollingLayerImpl = 0; 651 m_currentlyScrollingLayerImpl = 0;
647 652
648 if (m_rootLayerImpl && m_scrollingLayerIdFromPreviousTree != -1) 653 if (m_rootLayerImpl && m_scrollingLayerIdFromPreviousTree != -1)
649 m_currentlyScrollingLayerImpl = CCLayerTreeHostCommon::findLayerInSubtre e(m_rootLayerImpl.get(), m_scrollingLayerIdFromPreviousTree); 654 m_currentlyScrollingLayerImpl = CCLayerTreeHostCommon::findLayerInSubtre e(m_rootLayerImpl.get(), m_scrollingLayerIdFromPreviousTree);
650 655
651 m_scrollingLayerIdFromPreviousTree = -1; 656 m_scrollingLayerIdFromPreviousTree = -1;
657
658 m_client->onCanDrawStateChanged(canDraw());
652 } 659 }
653 660
654 PassOwnPtr<CCLayerImpl> CCLayerTreeHostImpl::detachLayerTree() 661 PassOwnPtr<CCLayerImpl> CCLayerTreeHostImpl::detachLayerTree()
655 { 662 {
656 // Clear all data structures that have direct references to the layer tree. 663 // Clear all data structures that have direct references to the layer tree.
657 m_scrollingLayerIdFromPreviousTree = m_currentlyScrollingLayerImpl ? m_curre ntlyScrollingLayerImpl->id() : -1; 664 m_scrollingLayerIdFromPreviousTree = m_currentlyScrollingLayerImpl ? m_curre ntlyScrollingLayerImpl->id() : -1;
658 m_currentlyScrollingLayerImpl = 0; 665 m_currentlyScrollingLayerImpl = 0;
659 m_renderSurfaceLayerList.clear(); 666 m_renderSurfaceLayerList.clear();
660 667
661 return m_rootLayerImpl.release(); 668 return m_rootLayerImpl.release();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 } 711 }
705 712
706 m_renderer = renderer.release(); 713 m_renderer = renderer.release();
707 m_resourceProvider = resourceProvider.release(); 714 m_resourceProvider = resourceProvider.release();
708 if (m_renderer) 715 if (m_renderer)
709 m_context = contextRef.release(); 716 m_context = contextRef.release();
710 717
711 if (!m_visible && m_renderer) 718 if (!m_visible && m_renderer)
712 m_renderer->setVisible(m_visible); 719 m_renderer->setVisible(m_visible);
713 720
721 m_client->onCanDrawStateChanged(canDraw());
722
714 return m_renderer; 723 return m_renderer;
715 } 724 }
716 725
726 void CCLayerTreeHostImpl::resetContentsTexturesPurged()
727 {
728 m_contentsTexturesPurged = false;
729 m_client->onCanDrawStateChanged(canDraw());
730 }
731
717 void CCLayerTreeHostImpl::setViewportSize(const IntSize& layoutViewportSize, con st IntSize& deviceViewportSize) 732 void CCLayerTreeHostImpl::setViewportSize(const IntSize& layoutViewportSize, con st IntSize& deviceViewportSize)
718 { 733 {
719 if (layoutViewportSize == m_layoutViewportSize && deviceViewportSize == m_de viceViewportSize) 734 if (layoutViewportSize == m_layoutViewportSize && deviceViewportSize == m_de viceViewportSize)
720 return; 735 return;
721 736
722 m_layoutViewportSize = layoutViewportSize; 737 m_layoutViewportSize = layoutViewportSize;
723 m_deviceViewportSize = deviceViewportSize; 738 m_deviceViewportSize = deviceViewportSize;
724 739
725 updateMaxScrollPosition(); 740 updateMaxScrollPosition();
726 741
727 if (m_renderer) 742 if (m_renderer)
728 m_renderer->viewportChanged(); 743 m_renderer->viewportChanged();
744
745 m_client->onCanDrawStateChanged(canDraw());
729 } 746 }
730 747
731 static void adjustScrollsForPageScaleChange(CCLayerImpl* layerImpl, float pageSc aleChange) 748 static void adjustScrollsForPageScaleChange(CCLayerImpl* layerImpl, float pageSc aleChange)
732 { 749 {
733 if (!layerImpl) 750 if (!layerImpl)
734 return; 751 return;
735 752
736 if (layerImpl->scrollable()) { 753 if (layerImpl->scrollable()) {
737 // We need to convert impl-side scroll deltas to pageScale space. 754 // We need to convert impl-side scroll deltas to pageScale space.
738 FloatSize scrollDelta = layerImpl->scrollDelta(); 755 FloatSize scrollDelta = layerImpl->scrollDelta();
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 1287
1271 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController(); 1288 CCScrollbarAnimationController* scrollbarController = layer->scrollbarAnimat ionController();
1272 if (scrollbarController && scrollbarController->animate(monotonicTime)) 1289 if (scrollbarController && scrollbarController->animate(monotonicTime))
1273 m_client->setNeedsRedrawOnImplThread(); 1290 m_client->setNeedsRedrawOnImplThread();
1274 1291
1275 for (size_t i = 0; i < layer->children().size(); ++i) 1292 for (size_t i = 0; i < layer->children().size(); ++i)
1276 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime); 1293 animateScrollbarsRecursive(layer->children()[i].get(), monotonicTime);
1277 } 1294 }
1278 1295
1279 } // namespace WebCore 1296 } // namespace WebCore
OLDNEW
« no previous file with comments | « cc/CCLayerTreeHostImpl.h ('k') | cc/CCLayerTreeHostImplTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698