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

Unified Diff: cc/layer_tree_host_impl.cc

Issue 11529006: [cc] Fold more update calls into updateDrawProperties (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: cc/layer_tree_host_impl.cc
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc
index 034ef0815e638802263b18c34f47d88f54ad2219..0dc38f8bbd7afd9a8fcdd69829c18c86ba1a747d 100644
--- a/cc/layer_tree_host_impl.cc
+++ b/cc/layer_tree_host_impl.cc
@@ -380,13 +380,6 @@ void LayerTreeHostImpl::trackDamageForAllSurfaces(LayerImpl* rootDrawLayer, cons
}
}
-void LayerTreeHostImpl::updateRootScrollLayerImplTransform()
-{
- if (rootScrollLayer()) {
- rootScrollLayer()->setImplTransform(implTransform());
- }
-}
-
void LayerTreeHostImpl::updateDrawProperties()
{
if (!needsUpdateDrawProperties())
@@ -398,20 +391,16 @@ void LayerTreeHostImpl::updateDrawProperties()
if (!rootLayer())
return;
- calculateRenderSurfaceLayerList(m_renderSurfaceLayerList);
-}
+ if (!m_renderer) // For maxTextureSize.
+ return;
-void LayerTreeHostImpl::calculateRenderSurfaceLayerList(LayerList& renderSurfaceLayerList)
-{
- DCHECK(renderSurfaceLayerList.empty());
- DCHECK(rootLayer());
- DCHECK(m_renderer); // For maxTextureSize.
- {
- updateRootScrollLayerImplTransform();
+ if (rootScrollLayer())
+ rootScrollLayer()->setImplTransform(implTransform());
- TRACE_EVENT0("cc", "LayerTreeHostImpl::calcDrawEtc");
- float pageScaleFactor = m_pinchZoomViewport.pageScaleFactor();
- LayerTreeHostCommon::calculateDrawProperties(rootLayer(), deviceViewportSize(), m_deviceScaleFactor, pageScaleFactor, rendererCapabilities().maxTextureSize, renderSurfaceLayerList);
+ {
+ TRACE_EVENT0("cc", "LayerTreeHostImpl::calcDrawEtc");
+ float pageScaleFactor = m_pinchZoomViewport.pageScaleFactor();
+ LayerTreeHostCommon::calculateDrawProperties(rootLayer(), deviceViewportSize(), m_deviceScaleFactor, pageScaleFactor, rendererCapabilities().maxTextureSize, m_renderSurfaceLayerList);
}
}
@@ -512,6 +501,9 @@ bool LayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
DCHECK(frame.renderPasses.empty());
updateDrawProperties();
+ if (!canDraw())
+ return false;
+
trackDamageForAllSurfaces(rootLayer(), *frame.renderSurfaceLayerList);
TRACE_EVENT1("cc", "LayerTreeHostImpl::calculateRenderPasses", "renderSurfaceLayerList.size()", static_cast<long long unsigned>(frame.renderSurfaceLayerList->size()));
@@ -766,7 +758,6 @@ void LayerTreeHostImpl::removeRenderPasses(RenderPassCuller culler, FrameData& f
bool LayerTreeHostImpl::prepareToDraw(FrameData& frame)
{
TRACE_EVENT0("cc", "LayerTreeHostImpl::prepareToDraw");
- DCHECK(canDraw());
danakj 2012/12/13 00:03:37 I don't like this.. I assume this is for the tests
enne (OOO) 2012/12/13 00:18:07 I'm going to disagree here. I like this a lot. T
danakj 2012/12/13 00:20:15 I am motivated by the fact that we had a lot of cr
if (m_tileManager)
m_tileManager->CheckForCompletedSetPixels();
@@ -903,7 +894,8 @@ void LayerTreeHostImpl::didDrawAllLayers(const FrameData& frame)
// Once all layers have been drawn, pending texture uploads should no
// longer block future uploads.
- m_resourceProvider->markPendingUploadsAsNonBlocking();
+ if (m_resourceProvider)
danakj 2012/12/13 00:03:37 If we initialze the host properly with a FakeOutpu
+ m_resourceProvider->markPendingUploadsAsNonBlocking();
}
void LayerTreeHostImpl::finishAllRendering()
@@ -1190,25 +1182,7 @@ void LayerTreeHostImpl::setNeedsRedraw()
bool LayerTreeHostImpl::ensureRenderSurfaceLayerList()
{
- // TODO(enne): See http://crbug.com/164949. This function should really
danakj 2012/12/13 00:03:37 This is super yay.
- // just call updateDrawProperties(), but that breaks a number of
- // impl transform tests that don't expect the tree to be updated.
- if (!rootLayer())
- return false;
- if (!m_renderer)
- return false;
-
- // We need both a non-empty render surface layer list and a root render
- // surface to be able to iterate over the visible layers.
- if (m_renderSurfaceLayerList.size() && rootLayer()->renderSurface())
- return true;
-
- // If we are called after setRootLayer() but before prepareToDraw(), we need
- // to recalculate the visible layers. This prevents being unable to scroll
- // during part of a commit.
- setNeedsUpdateDrawProperties();
updateDrawProperties();
-
return m_renderSurfaceLayerList.size();
}

Powered by Google App Engine
This is Rietveld 408576698