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

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: Created 7 years, 12 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
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 PriorityCalculator::allowEverythingCutoff(), 219 PriorityCalculator::allowEverythingCutoff(),
220 0, 220 0,
221 PriorityCalculator::allowNothingCutoff()) 221 PriorityCalculator::allowNothingCutoff())
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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 595
598 #ifndef NDEBUG 596 #ifndef NDEBUG
599 for (size_t i = 0; i < frame.renderPasses.size(); ++i) { 597 for (size_t i = 0; i < frame.renderPasses.size(); ++i) {
600 for (size_t j = 0; j < frame.renderPasses[i]->quad_list.size(); ++j) 598 for (size_t j = 0; j < frame.renderPasses[i]->quad_list.size(); ++j)
601 DCHECK(frame.renderPasses[i]->quad_list[j]->shared_quad_state); 599 DCHECK(frame.renderPasses[i]->quad_list[j]->shared_quad_state);
602 DCHECK(frame.renderPassesById.find(frame.renderPasses[i]->id) 600 DCHECK(frame.renderPassesById.find(frame.renderPasses[i]->id)
603 != frame.renderPassesById.end()); 601 != frame.renderPassesById.end());
604 } 602 }
605 #endif 603 #endif
606 604
607 if (!m_hasTransparentBackground) { 605 if (!activeTree()->has_transparent_background()) {
608 frame.renderPasses.last()->has_transparent_background = false; 606 frame.renderPasses.last()->has_transparent_background = false;
609 appendQuadsToFillScreen(frame.renderPasses.last(), rootLayer(), m_backgr oundColor, occlusionTracker); 607 appendQuadsToFillScreen(frame.renderPasses.last(), rootLayer(), activeTr ee()->background_color(), occlusionTracker);
610 } 608 }
611 609
612 if (drawFrame) 610 if (drawFrame)
613 occlusionTracker.overdrawMetrics().recordMetrics(this); 611 occlusionTracker.overdrawMetrics().recordMetrics(this);
614 612
615 removeRenderPasses(CullRenderPassesWithNoQuads(), frame); 613 removeRenderPasses(CullRenderPassesWithNoQuads(), frame);
616 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses); 614 m_renderer->decideRenderPassAllocationsForFrame(frame.renderPasses);
617 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame); 615 removeRenderPasses(CullRenderPassesWithCachedTextures(*m_renderer), frame);
618 616
619 return drawFrame; 617 return drawFrame;
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 979
982 if (layerImpl->scrollable()) 980 if (layerImpl->scrollable())
983 return layerImpl; 981 return layerImpl;
984 982
985 if (layerImpl->drawsContent() && layerImpl->parent() && layerImpl->parent()- >scrollable()) 983 if (layerImpl->drawsContent() && layerImpl->parent() && layerImpl->parent()- >scrollable())
986 return layerImpl->parent(); 984 return layerImpl->parent();
987 985
988 return 0; 986 return 0;
989 } 987 }
990 988
991 void LayerTreeHostImpl::setRootLayer(scoped_ptr<LayerImpl> layer)
992 {
993 m_activeTree->SetRootLayer(layer.Pass());
994 setNeedsUpdateDrawProperties();
995 }
996
997 void LayerTreeHostImpl::createPendingTree() 989 void LayerTreeHostImpl::createPendingTree()
998 { 990 {
999 CHECK(!m_pendingTree); 991 CHECK(!m_pendingTree);
1000 m_pendingTree = LayerTreeImpl::create(this); 992 m_pendingTree = LayerTreeImpl::create(this);
1001 m_client->onCanDrawStateChanged(canDraw()); 993 m_client->onCanDrawStateChanged(canDraw());
1002 m_client->onHasPendingTreeStateChanged(pendingTree()); 994 m_client->onHasPendingTreeStateChanged(pendingTree());
1003 } 995 }
1004 996
1005 void LayerTreeHostImpl::activatePendingTreeIfNeeded() 997 void LayerTreeHostImpl::activatePendingTreeIfNeeded()
1006 { 998 {
(...skipping 20 matching lines...) Expand all
1027 void LayerTreeHostImpl::activatePendingTree() 1019 void LayerTreeHostImpl::activatePendingTree()
1028 { 1020 {
1029 CHECK(m_pendingTree); 1021 CHECK(m_pendingTree);
1030 m_activeTree.swap(m_pendingTree); 1022 m_activeTree.swap(m_pendingTree);
1031 // TODO(enne): consider recycling this tree to prevent layer churn 1023 // TODO(enne): consider recycling this tree to prevent layer churn
1032 m_pendingTree.reset(); 1024 m_pendingTree.reset();
1033 m_client->onCanDrawStateChanged(canDraw()); 1025 m_client->onCanDrawStateChanged(canDraw());
1034 m_client->onHasPendingTreeStateChanged(pendingTree()); 1026 m_client->onHasPendingTreeStateChanged(pendingTree());
1035 } 1027 }
1036 1028
1037 scoped_ptr<LayerImpl> LayerTreeHostImpl::detachLayerTree()
1038 {
1039 scoped_ptr<LayerImpl> layer = m_activeTree->DetachLayerTree();
1040 return layer.Pass();
1041 }
1042
1043 void LayerTreeHostImpl::setVisible(bool visible) 1029 void LayerTreeHostImpl::setVisible(bool visible)
1044 { 1030 {
1045 DCHECK(m_proxy->isImplThread()); 1031 DCHECK(m_proxy->isImplThread());
1046 1032
1047 if (m_visible == visible) 1033 if (m_visible == visible)
1048 return; 1034 return;
1049 m_visible = visible; 1035 m_visible = visible;
1050 didVisibilityChange(this, m_visible); 1036 didVisibilityChange(this, m_visible);
1051 enforceManagedMemoryPolicy(m_managedMemoryPolicy); 1037 enforceManagedMemoryPolicy(m_managedMemoryPolicy);
1052 1038
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
1706 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController(); 1692 ScrollbarAnimationController* scrollbarController = layer->scrollbarAnimatio nController();
1707 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); 1693 double monotonicTime = (time - base::TimeTicks()).InSecondsF();
1708 if (scrollbarController && scrollbarController->animate(monotonicTime)) 1694 if (scrollbarController && scrollbarController->animate(monotonicTime))
1709 m_client->setNeedsRedrawOnImplThread(); 1695 m_client->setNeedsRedrawOnImplThread();
1710 1696
1711 for (size_t i = 0; i < layer->children().size(); ++i) 1697 for (size_t i = 0; i < layer->children().size(); ++i)
1712 animateScrollbarsRecursive(layer->children()[i], time); 1698 animateScrollbarsRecursive(layer->children()[i], time);
1713 } 1699 }
1714 1700
1715 } // namespace cc 1701 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698