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

Unified Diff: Source/core/rendering/RenderLayerCompositor.h

Issue 23903012: Set up scroll and clip parents (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Make WebLayer additions pure virtual. Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderLayerBacking.cpp ('k') | Source/core/rendering/RenderLayerCompositor.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderLayerCompositor.h
diff --git a/Source/core/rendering/RenderLayerCompositor.h b/Source/core/rendering/RenderLayerCompositor.h
index 3496bddea74c878e16b32d8dd26167cac9c3bee6..7b80638871fc8a9f7cd0653bab3cb5ae7da85789 100644
--- a/Source/core/rendering/RenderLayerCompositor.h
+++ b/Source/core/rendering/RenderLayerCompositor.h
@@ -99,10 +99,13 @@ public:
bool updateLayerCompositingState(RenderLayer*, CompositingChangeRepaint = CompositingChangeRepaintNow);
// Update the geometry for compositing children of compositingAncestor.
- void updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, RenderLayer*, bool compositedChildrenOnly);
+ void updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, RenderLayer*, HashSet<RenderLayer*>& visited, bool compositedChildrenOnly);
+
+ // Ensures that scroll parents have been processed before recurring into updateCompositedDescendantGeometry for the current layer.
+ void updateCompositingDescendantGeometryForLayerAndScrollParents(RenderLayer* compositingAncestor, RenderLayer*, HashSet<RenderLayer*>& visited, bool compositedChildrenOnly);
// Whether layer's backing needs a graphics layer to do clipping by an ancestor (non-stacking-context parent with overflow).
- bool clippedByAncestor(RenderLayer*) const;
+ bool clippedByAncestor(const RenderLayer*) const;
// Whether layer's backing needs a graphics layer to clip z-order children of the given layer.
bool clipsCompositingDescendants(const RenderLayer*) const;
@@ -241,10 +244,16 @@ private:
void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*, OverlapMap*, struct CompositingState&, bool& layersChanged, bool& descendantHas3DTransform, Vector<RenderLayer*>& unclippedDescendants);
// Recurses down the tree, parenting descendant compositing layers and collecting an array of child layers for the current compositing layer.
- void rebuildCompositingLayerTree(RenderLayer*, Vector<GraphicsLayer*>& childGraphicsLayersOfEnclosingLayer, int depth);
+ void rebuildCompositingLayerTree(RenderLayer*, Vector<GraphicsLayer*>& childGraphicsLayersOfEnclosingLayer, HashSet<RenderLayer*>& visited, int depth);
+
+ // Ensures that scroll parents have been processed before recurring into rebuildCompositingLayerTree for the current layer.
+ void rebuildCompositingLayerTreeForLayerAndScrollParents(RenderLayer*, Vector<GraphicsLayer*>& childGraphicsLayersOfEnclosingLayer, HashSet<RenderLayer*>& visited, HashMap<RenderLayer*, Vector<GraphicsLayer*> >& childGraphicsLayersOfScrollParents, int depth);
// Recurses down the tree, updating layer geometry only.
- void updateLayerTreeGeometry(RenderLayer*, int depth);
+ void updateLayerTreeGeometry(RenderLayer*, HashSet<RenderLayer*>& visited, int depth);
+
+ // Ensures that scroll parents have been processed before recurring into updateLayerTree for the current layer.
+ void updateLayerTreeGeometryForLayerAndScrollParents(RenderLayer*, HashSet<RenderLayer*>& visited, int depth);
// Hook compositing layers together
void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer);
« no previous file with comments | « Source/core/rendering/RenderLayerBacking.cpp ('k') | Source/core/rendering/RenderLayerCompositor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698