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

Unified Diff: cc/layer_impl.cc

Issue 11447028: cc: Split out calcDrawEtc from drawLayers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Testing 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_impl.cc
diff --git a/cc/layer_impl.cc b/cc/layer_impl.cc
index fa686134ca12feccaae18c19bffd704e2ea522d9..c3cbc786721237ac8a0713196424b60626f54222 100644
--- a/cc/layer_impl.cc
+++ b/cc/layer_impl.cc
@@ -69,6 +69,7 @@ void LayerImpl::addChild(scoped_ptr<LayerImpl> child)
child->setParent(this);
DCHECK_EQ(layerTreeHostImpl(), child->layerTreeHostImpl());
m_children.append(child.Pass());
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
}
void LayerImpl::removeFromParent()
@@ -82,6 +83,7 @@ void LayerImpl::removeFromParent()
for (size_t i = 0; i < parent->m_children.size(); ++i) {
if (parent->m_children[i] == this) {
parent->m_children.remove(i);
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
return;
}
}
@@ -96,6 +98,7 @@ void LayerImpl::removeAllChildren()
void LayerImpl::clearChildList()
{
danakj 2012/12/07 23:12:49 should this early-out if m_children.empty() now?
enne (OOO) 2012/12/07 23:25:05 Done.
m_children.clear();
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
}
void LayerImpl::createRenderSurface()
@@ -369,14 +372,27 @@ bool LayerImpl::layerSurfacePropertyChanged() const
return false;
}
-void LayerImpl::noteLayerPropertyChangedForSubtree()
+void LayerImpl::noteLayerSurfacePropertyChanged()
+{
+ m_layerSurfacePropertyChanged = true;
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
+}
+
+void LayerImpl::noteLayerPropertyChanged()
{
m_layerPropertyChanged = true;
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
+}
+
+void LayerImpl::noteLayerPropertyChangedForSubtree()
+{
+ noteLayerPropertyChanged();
noteLayerPropertyChangedForDescendants();
}
void LayerImpl::noteLayerPropertyChangedForDescendants()
{
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
for (size_t i = 0; i < m_children.size(); ++i)
m_children[i]->noteLayerPropertyChangedForSubtree();
}
@@ -426,7 +442,7 @@ void LayerImpl::setBounds(const gfx::Size& bounds)
if (masksToBounds())
noteLayerPropertyChangedForSubtree();
else
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setMaskLayer(scoped_ptr<LayerImpl> maskLayer)
@@ -463,7 +479,7 @@ void LayerImpl::setDrawsContent(bool drawsContent)
return;
m_drawsContent = drawsContent;
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setAnchorPoint(const gfx::PointF& anchorPoint)
@@ -490,7 +506,7 @@ void LayerImpl::setBackgroundColor(SkColor backgroundColor)
return;
m_backgroundColor = backgroundColor;
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setFilters(const WebKit::WebFilterOperations& filters)
@@ -509,7 +525,7 @@ void LayerImpl::setBackgroundFilters(const WebKit::WebFilterOperations& backgrou
return;
m_backgroundFilters = backgroundFilters;
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setFilter(const skia::RefPtr<SkImageFilter>& filter)
@@ -544,7 +560,8 @@ void LayerImpl::setOpacity(float opacity)
{
if (!m_layerAnimationController->setOpacity(opacity))
return;
- m_layerSurfacePropertyChanged = true;
+
+ noteLayerSurfacePropertyChanged();
}
float LayerImpl::opacity() const
@@ -589,7 +606,8 @@ void LayerImpl::setTransform(const gfx::Transform& transform)
{
if (!m_layerAnimationController->setTransform(transform))
return;
- m_layerSurfacePropertyChanged = true;
+
+ noteLayerSurfacePropertyChanged();
}
const gfx::Transform& LayerImpl::transform() const
@@ -608,7 +626,7 @@ void LayerImpl::setContentBounds(const gfx::Size& contentBounds)
return;
m_contentBounds = contentBounds;
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY)
@@ -618,7 +636,7 @@ void LayerImpl::setContentsScale(float contentsScaleX, float contentsScaleY)
m_contentsScaleX = contentsScaleX;
m_contentsScaleY = contentsScaleY;
- m_layerPropertyChanged = true;
+ noteLayerPropertyChanged();
}
void LayerImpl::setScrollOffset(gfx::Vector2d scrollOffset)
@@ -670,8 +688,12 @@ void LayerImpl::didLoseOutputSurface()
void LayerImpl::setMaxScrollOffset(gfx::Vector2d maxScrollOffset)
{
+ if (m_maxScrollOffset == maxScrollOffset)
+ return;
m_maxScrollOffset = maxScrollOffset;
+ m_layerTreeHostImpl->setNeedsUpdateDrawProperties();
+
if (!m_scrollbarAnimationController)
return;
m_scrollbarAnimationController->updateScrollOffset(this);
« no previous file with comments | « cc/layer_impl.h ('k') | cc/layer_impl_unittest.cc » ('j') | cc/layer_impl_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698