| Index: Source/core/rendering/RenderLayerCompositor.h
|
| ===================================================================
|
| --- Source/core/rendering/RenderLayerCompositor.h (revision 159992)
|
| +++ Source/core/rendering/RenderLayerCompositor.h (working copy)
|
| @@ -46,7 +46,8 @@
|
| CompositingUpdateAfterStyleChange,
|
| CompositingUpdateAfterLayout,
|
| CompositingUpdateOnScroll,
|
| - CompositingUpdateOnCompositedScroll
|
| + CompositingUpdateOnCompositedScroll,
|
| + CompositingUpdateFinishAllDeferredWork
|
| };
|
|
|
| // RenderLayerCompositor manages the hierarchy of
|
| @@ -91,7 +92,9 @@
|
| void updateCompositingRequirementsState();
|
| void setNeedsUpdateCompositingRequirementsState() { m_needsUpdateCompositingRequirementsState = true; }
|
|
|
| - // Rebuild the tree of compositing layers
|
| + // Main entry point for a full update. As needed, this function will compute compositing requirements,
|
| + // rebuild the composited layer tree, and/or update all the properties assocaited with each layer of the
|
| + // composited layer tree.
|
| void updateCompositingLayers(CompositingUpdateType, RenderLayer* updateRoot = 0);
|
|
|
| // Update the compositing state of the given layer. Returns true if that state changed.
|
| @@ -200,7 +203,7 @@
|
| void resetTrackedRepaintRects();
|
| void setTracksRepaints(bool);
|
|
|
| - void setShouldReevaluateCompositingAfterLayout() { m_reevaluateCompositingAfterLayout = true; }
|
| + void setNeedsToRecomputeCompositingRequirements() { m_needsToRecomputeCompositingRequirements = true; }
|
|
|
| // Returns all reasons (direct, indirectly due to subtree, and indirectly due to overlap) that a layer should be composited.
|
| CompositingReasons reasonsForCompositing(const RenderLayer*) const;
|
| @@ -238,6 +241,10 @@
|
| void addToOverlapMap(OverlapMap&, RenderLayer*, IntRect& layerBounds, bool& boundsComputed);
|
| void addToOverlapMapRecursive(OverlapMap&, RenderLayer*, RenderLayer* ancestorLayer = 0);
|
|
|
| + // 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*);
|
| +
|
| // Returns true if any layer's compositing changed
|
| void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*, OverlapMap*, struct CompositingRecursionData&, bool& layersChanged, bool& descendantHas3DTransform, Vector<RenderLayer*>& unclippedDescendants);
|
|
|
| @@ -317,9 +324,9 @@
|
| int m_compositedLayerCount;
|
| bool m_showRepaintCounter;
|
|
|
| - // When true, we have to wait until layout has happened before we can decide whether to enter compositing mode,
|
| - // because only then do we know the final size of plugins and iframes.
|
| - mutable bool m_reevaluateCompositingAfterLayout;
|
| + // FIXME: This should absolutely not be mutable.
|
| + mutable bool m_needsToRecomputeCompositingRequirements;
|
| + bool m_needsToUpdateLayerTreeGeometry;
|
|
|
| bool m_compositing;
|
| bool m_compositingLayersNeedRebuild;
|
|
|