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

Unified Diff: Source/WebCore/rendering/RenderLayer.h

Issue 13467028: Add an intermediate function to generate 2 paint-order lists. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 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
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();

Powered by Google App Engine
This is Rietveld 408576698