Chromium Code Reviews| Index: Source/WebCore/rendering/RenderLayer.h |
| diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h |
| index 21a6c919dc01fd742dd8ee8f5dc6b7e0f7ca60b8..75c08b342fa9371566fb470519e4fc8478c4bcfd 100644 |
| --- a/Source/WebCore/rendering/RenderLayer.h |
| +++ b/Source/WebCore/rendering/RenderLayer.h |
| @@ -62,6 +62,7 @@ class FilterOperations; |
| class HitTestRequest; |
| class HitTestResult; |
| class HitTestingTransformState; |
| +class PaintOrderLists; |
| class RenderFlowThread; |
| class RenderGeometryMap; |
| class RenderLayerBacking; |
| @@ -834,12 +835,17 @@ public: |
| bool isOutOfFlowRenderFlowThread() const { return renderer()->isOutOfFlowRenderFlowThread(); } |
| + String paintOrderListsAsText(); |
| + PassRefPtr<PaintOrderLists> paintOrderLists(); |
| + |
| private: |
| enum CollectLayersBehavior { StopAtStackingContexts, StopAtStackingContainers }; |
| void updateZOrderLists(); |
| void rebuildZOrderLists(); |
| - void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&); |
| + // See the comment for collectLayers for information about the |
| + // layerToForceAsStackingContext parameter. |
| + void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContext = 0); |
| void clearZOrderLists(); |
| void updateNormalFlowList(); |
| @@ -854,6 +860,16 @@ private: |
| bool acceleratedCompositingForOverflowScrollEnabled() const; |
| void updateDescendantsAreContiguousInStackingOrder(); |
| void updateDescendantsAreContiguousInStackingOrderRecursive(const HashMap<const RenderLayer*, int>&, int& minIndex, int& maxIndex, int& count, bool firstIteration); |
| + void collectBeforeAfterPromotionZOrderLists(RenderLayer* ancestorStackingContext, |
|
Ian Vollick
2013/04/16 19:17:41
Please combine these two methods. They're hard to
hartmanng
2013/04/17 18:00:20
Done.
|
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, |
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListBeforePromote, |
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, |
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListAfterPromote); |
| + void getPaintOrderLists(RenderLayer* ancestorStackingContext, |
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, |
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListBeforePromote, |
| + OwnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, |
| + OwnPtr<Vector<RenderLayer*> >& negZOrderListAfterPromote); |
| void computeRepaintRects(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap* = 0); |
| void computeRepaintRectsIncludingDescendants(); |
| @@ -908,7 +924,11 @@ private: |
| LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRenderBox(renderer())->location() : LayoutPoint(); } |
| - void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&); |
| + // layerToForceAsStackingContext allows us to build pre-promotion and |
| + // post-promotion layer lists, by allowing us to treat a layer as if it is a |
| + // stacking context, without adding a new member to RenderLayer or modifying |
| + // the style (which could cause extra allocations). |
| + void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContext = 0); |
| void updateCompositingAndLayerListsIfNeeded(); |