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

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

Issue 88863002: Land layer squashing behind a flag (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: removed bogus asserts 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/CompositedLayerMapping.h
diff --git a/Source/core/rendering/CompositedLayerMapping.h b/Source/core/rendering/CompositedLayerMapping.h
index 8f1a5cdff2145e20f624c899588bf000b8f503f5..b0f85e44d0e9e48be192b684412d774033f834c9 100644
--- a/Source/core/rendering/CompositedLayerMapping.h
+++ b/Source/core/rendering/CompositedLayerMapping.h
@@ -52,6 +52,10 @@ struct GraphicsLayerPaintInfo {
IntRect compositedBounds;
+ // A temporary offset used for squashing layers, when the origin of the
+ // squashing layer is not yet known.
+ IntSize offsetFromBackingRoot;
+
IntSize offsetFromRenderer;
GraphicsLayerPaintingPhase paintingPhase;
@@ -115,6 +119,8 @@ public:
GraphicsLayer* parentForSublayers() const;
GraphicsLayer* childForSuperlayers() const;
+ GraphicsLayer* squashingLayer() const { return m_squashingLayer.get(); }
+
// Returns true for a composited layer that has no backing store of its own, so
// paints into some ancestor layer.
bool paintsIntoCompositedAncestor() const { return !(m_requiresOwnBackingStoreForAncestorReasons || m_requiresOwnBackingStoreForIntrinsicReasons); }
@@ -152,6 +158,9 @@ public:
void positionOverflowControlsLayers(const IntSize& offsetFromRoot);
bool hasUnpositionedOverflowControlsLayers() const;
+ void addRenderLayerToSquashingGraphicsLayer(RenderLayer*, IntSize offsetFromTargetBacking, size_t nextSquashedLayerIndex);
+ void finishAccumulatingSquashingLayers(size_t nextSquashedLayerIndex);
+
// GraphicsLayerClient interface
virtual void notifyAnimationStarted(const GraphicsLayer*, double wallClockTime, double monotonicTime) OVERRIDE;
@@ -210,6 +219,7 @@ private:
bool updateScrollingLayers(bool scrollingLayers);
void updateScrollParent(RenderLayer*);
void updateClipParent(RenderLayer*);
+ bool updateSquashingLayers(bool needsSquashingLayers);
void updateDrawsContent(bool isSimpleContainer);
void registerScrollingLayers();
@@ -329,6 +339,10 @@ private:
OwnPtr<WebAnimationProvider> m_animationProvider;
+ OwnPtr<GraphicsLayer> m_squashingContainmentLayer; // Only used if any squashed layers exist, to contain the squashed layers as siblings to the rest of the GraphicsLayer tree chunk.
+ OwnPtr<GraphicsLayer> m_squashingLayer; // Only used if any squashed layers exist, this is the backing that squashed layers paint into.
+ Vector<GraphicsLayerPaintInfo> m_squashedLayers;
+
IntRect m_compositedBounds;
bool m_artificiallyInflatedBounds; // bounds had to be made non-zero to make transform-origin work
« no previous file with comments | « LayoutTests/compositing/squashing/squashed-repaints-expected.txt ('k') | Source/core/rendering/CompositedLayerMapping.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698