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

Side by Side Diff: cc/layer_tree_host_impl.cc

Issue 11704003: cc: Move more functionality from host to LayerTreeImpl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 11 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/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.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/layer_tree_host_impl.h" 5 #include "cc/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 , m_scrollDeltaIsInViewportSpace(false) 212 , m_scrollDeltaIsInViewportSpace(false)
213 , m_settings(settings) 213 , m_settings(settings)
214 , m_debugState(settings.initialDebugState) 214 , m_debugState(settings.initialDebugState)
215 , m_deviceScaleFactor(1) 215 , m_deviceScaleFactor(1)
216 , m_visible(true) 216 , m_visible(true)
217 , m_contentsTexturesPurged(false) 217 , m_contentsTexturesPurged(false)
218 , m_managedMemoryPolicy(PrioritizedResourceManager::defaultMemoryAllocationL imit(), 218 , m_managedMemoryPolicy(PrioritizedResourceManager::defaultMemoryAllocationL imit(),
219 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING, 219 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING,
220 0, 220 0,
221 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING) 221 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING)
222 , m_backgroundColor(0)
223 , m_hasTransparentBackground(false)
224 , m_needsUpdateDrawProperties(false) 222 , m_needsUpdateDrawProperties(false)
225 , m_pinchGestureActive(false) 223 , m_pinchGestureActive(false)
226 , m_fpsCounter(FrameRateCounter::create(m_proxy->hasImplThread())) 224 , m_fpsCounter(FrameRateCounter::create(m_proxy->hasImplThread()))
227 , m_debugRectHistory(DebugRectHistory::create()) 225 , m_debugRectHistory(DebugRectHistory::create())
228 , m_numImplThreadScrolls(0) 226 , m_numImplThreadScrolls(0)
229 , m_numMainThreadScrolls(0) 227 , m_numMainThreadScrolls(0)
230 , m_cumulativeNumLayersDrawn(0) 228 , m_cumulativeNumLayersDrawn(0)
231 , m_cumulativeNumMissingTiles(0) 229 , m_cumulativeNumMissingTiles(0)
232 , m_lastSentMemoryVisibleBytes(0) 230 , m_lastSentMemoryVisibleBytes(0)
233 , m_lastSentMemoryVisibleAndNearbyBytes(0) 231 , m_lastSentMemoryVisibleAndNearbyBytes(0)
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 605
608 #ifndef NDEBUG 606 #ifndef NDEBUG
609 for (size_t i = 0; i < frame.renderPasses.size(); ++i) { 607 for (size_t i = 0; i < frame.renderPasses.size(); ++i) {
610 for (size_t j = 0; j < frame.renderPasses[i]->quad_list.size(); ++j) 608 for (size_t j = 0; j < frame.renderPasses[i]->quad_list.size(); ++j)
611 DCHECK(frame.renderPasses[i]->quad_list[j]->shared_quad_state); 609 DCHECK(frame.renderPasses[i]->quad_list[j]->shared_quad_state);
612 DCHECK(frame.renderPassesById.find(frame.renderPasses[i]->id) 610 DCHECK(frame.renderPassesById.find(frame.renderPasses[i]->id)
613 != frame.renderPassesById.end()); 611 != frame.renderPassesById.end());
614 } 612 }
615 #endif 613 #endif
616 614
617 if (!m_hasTransparentBackground) { 615 if (!activeTree()->has_transparent_background()) {
618 frame.renderPasses.last()->has_transparent_background = false; 616 frame.renderPasses.last()->has_transparent_background = false;
619 appendQuadsToFillScreen(frame.renderPasses.last(), rootLayer(), m_backgr oundColor, occlusionTracker); 617 appendQuadsToFillScreen(frame.renderPasses.last(), rootLayer(), activeTr ee()->background_color(), occlusionTracker);
620 } 618 }
621 619
622 if (drawFrame) 620 if (drawFrame)
623 occlusionTracker.overdrawMetrics().recordMetrics(this); 621 occlusionTracker.overdrawMetrics().recordMetrics(this);
624 622
625 removeRenderPasses(CullRenderPassesWithNoQuads(), frame); 623 removeRenderPasses(CullRenderPassesWithNoQuads(), frame);
626 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses); 624 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses);
627 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame); 625 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame);
628 626
629 return drawFrame; 627 return drawFrame;
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
993 991
994 if (layerImpl->scrollable()) 992 if (layerImpl->scrollable())
995 return layerImpl; 993 return layerImpl;
996 994
997 if (layerImpl->drawsContent() && layerImpl->parent() && layerImpl->parent()- >scrollable()) 995 if (layerImpl->drawsContent() && layerImpl->parent() && layerImpl->parent()- >scrollable())
998 return layerImpl->parent(); 996 return layerImpl->parent();
999 997
1000 return 0; 998 return 0;
1001 } 999 }
1002 1000
1003 void LayerTreeHostImpl::setRootLayer(scoped_ptr<LayerImpl> layer)
1004 {
1005 m_activeTree->SetRootLayer(layer.Pass());
1006 setNeedsUpdateDrawProperties();
1007 }
1008
1009 void LayerTreeHostImpl::createPendingTree() 1001 void LayerTreeHostImpl::createPendingTree()
1010 { 1002 {
1011 CHECK(!m_pendingTree); 1003 CHECK(!m_pendingTree);
1012 m_pendingTree = LayerTreeImpl::create(this); 1004 m_pendingTree = LayerTreeImpl::create(this);
1013 m_client->onCanDrawStateChanged(canDraw()); 1005 m_client->onCanDrawStateChanged(canDraw());
1014 m_client->onHasPendingTreeStateChanged(pendingTree()); 1006 m_client->onHasPendingTreeStateChanged(pendingTree());
1015 } 1007 }
1016 1008
1017 void LayerTreeHostImpl::activatePendingTreeIfNeeded() 1009 void LayerTreeHostImpl::activatePendingTreeIfNeeded()
1018 { 1010 {
(...skipping 20 matching lines...) Expand all
1039 void LayerTreeHostImpl::activatePendingTree() 1031 void LayerTreeHostImpl::activatePendingTree()
1040 { 1032 {
1041 CHECK(m_pendingTree); 1033 CHECK(m_pendingTree);
1042 m_activeTree.swap(m_pendingTree); 1034 m_activeTree.swap(m_pendingTree);
1043 // TODO(enne): consider recycling this tree to prevent layer churn 1035 // TODO(enne): consider recycling this tree to prevent layer churn
1044 m_pendingTree.reset(); 1036 m_pendingTree.reset();
1045 m_client->onCanDrawStateChanged(canDraw()); 1037 m_client->onCanDrawStateChanged(canDraw());
1046 m_client->onHasPendingTreeStateChanged(pendingTree()); 1038 m_client->onHasPendingTreeStateChanged(pendingTree());
1047 } 1039 }
1048 1040
1049 scoped_ptr<LayerImpl> LayerTreeHostImpl::detachLayerTree()
1050 {
1051 scoped_ptr<LayerImpl> layer = m_activeTree->DetachLayerTree();
1052 return layer.Pass();
1053 }
1054
1055 void LayerTreeHostImpl::setVisible(bool visible) 1041 void LayerTreeHostImpl::setVisible(bool visible)
1056 { 1042 {
1057 DCHECK(m_proxy->isImplThread()); 1043 DCHECK(m_proxy->isImplThread());
1058 1044
1059 if (m_visible == visible) 1045 if (m_visible == visible)
1060 return; 1046 return;
1061 m_visible = visible; 1047 m_visible = visible;
1062 didVisibilityChange(this, m_visible); 1048 didVisibilityChange(this, m_visible);
1063 enforceManagedMemoryPolicy(m_managedMemoryPolicy); 1049 enforceManagedMemoryPolicy(m_managedMemoryPolicy);
1064 1050
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
1718 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController(); 1704 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController();
1719 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); 1705 double monotonicTime = (time - base::TimeTicks()).InSecondsF();
1720 if (scrollbarController && scrollbarController->animate(monotonicTime)) 1706 if (scrollbarController && scrollbarController->animate(monotonicTime))
1721 m_client->setNeedsRedrawOnImplThread(); 1707 m_client->setNeedsRedrawOnImplThread();
1722 1708
1723 for (size_t i = 0; i < layer->children().size(); ++i) 1709 for (size_t i = 0; i < layer->children().size(); ++i)
1724 animateScrollbarsRecursive(layer->children()[i], time); 1710 animateScrollbarsRecursive(layer->children()[i], time);
1725 } 1711 }
1726 1712
1727 } // namespace cc 1713 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698