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

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

Issue 88863002: Land layer squashing behind a flag (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Addressed reviewer feedback Created 7 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: Source/core/rendering/RenderLayerCompositor.h
diff --git a/Source/core/rendering/RenderLayerCompositor.h b/Source/core/rendering/RenderLayerCompositor.h
index dfc918551584adbc2024084ce630b4fe31a43998..98d6f639a4da67ffa20b024359b882a7e294da91 100644
--- a/Source/core/rendering/RenderLayerCompositor.h
+++ b/Source/core/rendering/RenderLayerCompositor.h
@@ -232,6 +232,25 @@ private:
void addToOverlapMap(OverlapMap&, RenderLayer*, IntRect& layerBounds, bool& boundsComputed);
void addToOverlapMapRecursive(OverlapMap&, RenderLayer*, RenderLayer* ancestorLayer = 0);
+ struct SquashingState {
+ SquashingState()
+ : mostRecentMapping(0)
+ , hasMostRecentMapping(false)
+ , nextSquashedLayerIndex(0) { }
+
+ void updateSquashingStateForNewMapping(CompositedLayerMappingPtr, bool hasNewCompositedLayerMapping, IntSize newAbsToLocalOffset);
+
+ // The most recent composited backing that the layer should squash onto if needed.
+ CompositedLayerMappingPtr mostRecentMapping;
+ bool hasMostRecentMapping;
+
+ // Offset from absolute coordinates of the target's owning layer to the backing's own local space.
+ IntSize absToLocalOffset;
+
+ // Counter that tracks what index the next RenderLayer would be if it gets squashed to the current squashing layer.
+ size_t nextSquashedLayerIndex;
+ };
+
// Forces an update for all frames of frame tree recursively. Used only when the mainFrame compositor is ready to
// finish all deferred work.
static void finishCompositingUpdateForFrameTree(Frame*);
@@ -241,6 +260,7 @@ private:
// Defines which RenderLayers will paint into which composited backings, by allocating and destroying CompositedLayerMappings as needed.
void assignLayersToBackings(RenderLayer*, bool& layersChanged);
+ void assignLayersToBackingsInternal(RenderLayer*, SquashingState&, bool& layersChanged);
// 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);

Powered by Google App Engine
This is Rietveld 408576698