| 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 "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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 } | 129 } |
| 130 | 130 |
| 131 LayerTreeHostImpl::LayerTreeHostImpl(const LayerTreeSettings& settings, LayerTre
eHostImplClient* client, Proxy* proxy) | 131 LayerTreeHostImpl::LayerTreeHostImpl(const LayerTreeSettings& settings, LayerTre
eHostImplClient* client, Proxy* proxy) |
| 132 : m_client(client) | 132 : m_client(client) |
| 133 , m_proxy(proxy) | 133 , m_proxy(proxy) |
| 134 , m_scrollDeltaIsInViewportSpace(false) | 134 , m_scrollDeltaIsInViewportSpace(false) |
| 135 , m_settings(settings) | 135 , m_settings(settings) |
| 136 , m_debugState(settings.initialDebugState) | 136 , m_debugState(settings.initialDebugState) |
| 137 , m_deviceScaleFactor(1) | 137 , m_deviceScaleFactor(1) |
| 138 , m_visible(true) | 138 , m_visible(true) |
| 139 , m_contentsTexturesPurged(false) | |
| 140 , m_managedMemoryPolicy(PrioritizedResourceManager::defaultMemoryAllocationL
imit(), | 139 , m_managedMemoryPolicy(PrioritizedResourceManager::defaultMemoryAllocationL
imit(), |
| 141 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING, | 140 ManagedMemoryPolicy::CUTOFF_ALLOW_EVERYTHING, |
| 142 0, | 141 0, |
| 143 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING) | 142 ManagedMemoryPolicy::CUTOFF_ALLOW_NOTHING) |
| 144 , m_needsUpdateDrawProperties(false) | 143 , m_needsUpdateDrawProperties(false) |
| 145 , m_pinchGestureActive(false) | 144 , m_pinchGestureActive(false) |
| 146 , m_fpsCounter(FrameRateCounter::create(m_proxy->hasImplThread())) | 145 , m_fpsCounter(FrameRateCounter::create(m_proxy->hasImplThread())) |
| 147 , m_paintTimeCounter(PaintTimeCounter::create()) | 146 , m_paintTimeCounter(PaintTimeCounter::create()) |
| 148 , m_debugRectHistory(DebugRectHistory::create()) | 147 , m_debugRectHistory(DebugRectHistory::create()) |
| 149 , m_numImplThreadScrolls(0) | 148 , m_numImplThreadScrolls(0) |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 return false; | 211 return false; |
| 213 } | 212 } |
| 214 if (deviceViewportSize().IsEmpty()) { | 213 if (deviceViewportSize().IsEmpty()) { |
| 215 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw empty viewport"); | 214 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw empty viewport"); |
| 216 return false; | 215 return false; |
| 217 } | 216 } |
| 218 if (!m_renderer) { | 217 if (!m_renderer) { |
| 219 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw no renderer"); | 218 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw no renderer"); |
| 220 return false; | 219 return false; |
| 221 } | 220 } |
| 222 if (m_contentsTexturesPurged) { | 221 if (m_activeTree->ContentsTexturesPurged()) { |
| 223 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw contents textures
purged"); | 222 TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::canDraw contents textures
purged"); |
| 224 return false; | 223 return false; |
| 225 } | 224 } |
| 226 return true; | 225 return true; |
| 227 } | 226 } |
| 228 | 227 |
| 229 OutputSurface* LayerTreeHostImpl::outputSurface() const | 228 OutputSurface* LayerTreeHostImpl::outputSurface() const |
| 230 { | 229 { |
| 231 return m_outputSurface.get(); | 230 return m_outputSurface.get(); |
| 232 } | 231 } |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 return true; | 690 return true; |
| 692 } | 691 } |
| 693 | 692 |
| 694 void LayerTreeHostImpl::enforceManagedMemoryPolicy(const ManagedMemoryPolicy& po
licy) | 693 void LayerTreeHostImpl::enforceManagedMemoryPolicy(const ManagedMemoryPolicy& po
licy) |
| 695 { | 694 { |
| 696 bool evictedResources = m_client->reduceContentsTextureMemoryOnImplThread( | 695 bool evictedResources = m_client->reduceContentsTextureMemoryOnImplThread( |
| 697 m_visible ? policy.bytesLimitWhenVisible : policy.bytesLimitWhenNotVisib
le, | 696 m_visible ? policy.bytesLimitWhenVisible : policy.bytesLimitWhenNotVisib
le, |
| 698 ManagedMemoryPolicy::priorityCutoffToValue( | 697 ManagedMemoryPolicy::priorityCutoffToValue( |
| 699 m_visible ? policy.priorityCutoffWhenVisible : policy.priorityCutoff
WhenNotVisible)); | 698 m_visible ? policy.priorityCutoffWhenVisible : policy.priorityCutoff
WhenNotVisible)); |
| 700 if (evictedResources) { | 699 if (evictedResources) { |
| 701 setContentsTexturesPurged(); | 700 DCHECK(!m_pendingTree); |
| 701 m_activeTree->SetContentsTexturesPurged(); |
| 702 m_client->setNeedsCommitOnImplThread(); | 702 m_client->setNeedsCommitOnImplThread(); |
| 703 m_client->onCanDrawStateChanged(canDraw()); | 703 m_client->onCanDrawStateChanged(canDraw()); |
| 704 } | 704 } |
| 705 m_client->sendManagedMemoryStats(); | 705 m_client->sendManagedMemoryStats(); |
| 706 | 706 |
| 707 if (m_tileManager) { | 707 if (m_tileManager) { |
| 708 GlobalStateThatImpactsTilePriority new_state(m_tileManager->GlobalState())
; | 708 GlobalStateThatImpactsTilePriority new_state(m_tileManager->GlobalState())
; |
| 709 new_state.memory_limit_in_bytes = m_visible ? policy.bytesLimitWhenVisible
: policy.bytesLimitWhenNotVisible; | 709 new_state.memory_limit_in_bytes = m_visible ? policy.bytesLimitWhenVisible
: policy.bytesLimitWhenNotVisible; |
| 710 new_state.memory_limit_policy = ManagedMemoryPolicy::priorityCutoffToTileM
emoryLimitPolicy( | 710 new_state.memory_limit_policy = ManagedMemoryPolicy::priorityCutoffToTileM
emoryLimitPolicy( |
| 711 m_visible ? policy.priorityCutoffWhenVisible : policy.priorityCutoffWh
enNotVisible); | 711 m_visible ? policy.priorityCutoffWhenVisible : policy.priorityCutoffWh
enNotVisible); |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1021 m_outputSurface = outputSurface.Pass(); | 1021 m_outputSurface = outputSurface.Pass(); |
| 1022 | 1022 |
| 1023 if (!m_visible) | 1023 if (!m_visible) |
| 1024 m_renderer->setVisible(m_visible); | 1024 m_renderer->setVisible(m_visible); |
| 1025 | 1025 |
| 1026 m_client->onCanDrawStateChanged(canDraw()); | 1026 m_client->onCanDrawStateChanged(canDraw()); |
| 1027 | 1027 |
| 1028 return true; | 1028 return true; |
| 1029 } | 1029 } |
| 1030 | 1030 |
| 1031 void LayerTreeHostImpl::setContentsTexturesPurged() | |
| 1032 { | |
| 1033 m_contentsTexturesPurged = true; | |
| 1034 m_client->onCanDrawStateChanged(canDraw()); | |
| 1035 } | |
| 1036 | |
| 1037 void LayerTreeHostImpl::resetContentsTexturesPurged() | |
| 1038 { | |
| 1039 m_contentsTexturesPurged = false; | |
| 1040 m_client->onCanDrawStateChanged(canDraw()); | |
| 1041 } | |
| 1042 | |
| 1043 void LayerTreeHostImpl::setViewportSize(const gfx::Size& layoutViewportSize, con
st gfx::Size& deviceViewportSize) | 1031 void LayerTreeHostImpl::setViewportSize(const gfx::Size& layoutViewportSize, con
st gfx::Size& deviceViewportSize) |
| 1044 { | 1032 { |
| 1045 if (layoutViewportSize == m_layoutViewportSize && deviceViewportSize == m_de
viceViewportSize) | 1033 if (layoutViewportSize == m_layoutViewportSize && deviceViewportSize == m_de
viceViewportSize) |
| 1046 return; | 1034 return; |
| 1047 | 1035 |
| 1048 m_layoutViewportSize = layoutViewportSize; | 1036 m_layoutViewportSize = layoutViewportSize; |
| 1049 m_deviceViewportSize = deviceViewportSize; | 1037 m_deviceViewportSize = deviceViewportSize; |
| 1050 | 1038 |
| 1051 m_pinchZoomViewport.set_layout_viewport_size(layoutViewportSize); | 1039 m_pinchZoomViewport.set_layout_viewport_size(layoutViewportSize); |
| 1052 | 1040 |
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1678 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); | 1666 LayerImpl* layer = getNonCompositedContentLayerRecursive(tree->RootLayer()); |
| 1679 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); | 1667 return layer ? layer->getPicture() : skia::RefPtr<SkPicture>(); |
| 1680 } | 1668 } |
| 1681 | 1669 |
| 1682 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) | 1670 void LayerTreeHostImpl::savePaintTime(const base::TimeDelta& totalPaintTime) |
| 1683 { | 1671 { |
| 1684 m_paintTimeCounter->SavePaintTime(totalPaintTime); | 1672 m_paintTimeCounter->SavePaintTime(totalPaintTime); |
| 1685 } | 1673 } |
| 1686 | 1674 |
| 1687 } // namespace cc | 1675 } // namespace cc |
| OLD | NEW |