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

Side by Side Diff: Source/core/rendering/RenderLayer.h

Issue 14458008: Clean up RenderLayer paintOrderLists code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase and fix compile error Created 7 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 NotCompositedForBoundsOutOfView, 804 NotCompositedForBoundsOutOfView,
805 NotCompositedForNonViewContainer, 805 NotCompositedForNonViewContainer,
806 NotCompositedForNoVisibleContent, 806 NotCompositedForNoVisibleContent,
807 }; 807 };
808 808
809 void setViewportConstrainedNotCompositedReason(ViewportConstrainedNotComposi tedReason reason) { m_compositingProperties.viewportConstrainedNotCompositedReas on = reason; } 809 void setViewportConstrainedNotCompositedReason(ViewportConstrainedNotComposi tedReason reason) { m_compositingProperties.viewportConstrainedNotCompositedReas on = reason; }
810 ViewportConstrainedNotCompositedReason viewportConstrainedNotCompositedReaso n() const { return static_cast<ViewportConstrainedNotCompositedReason>(m_composi tingProperties.viewportConstrainedNotCompositedReason); } 810 ViewportConstrainedNotCompositedReason viewportConstrainedNotCompositedReaso n() const { return static_cast<ViewportConstrainedNotCompositedReason>(m_composi tingProperties.viewportConstrainedNotCompositedReason); }
811 811
812 bool isOutOfFlowRenderFlowThread() const { return renderer()->isOutOfFlowRen derFlowThread(); } 812 bool isOutOfFlowRenderFlowThread() const { return renderer()->isOutOfFlowRen derFlowThread(); }
813 813
814 #ifndef NDEBUG
815 String paintOrderListsAsText();
816 #endif
817 enum PaintOrderListType {BeforePromote, AfterPromote}; 814 enum PaintOrderListType {BeforePromote, AfterPromote};
818 PassRefPtr<NodeList> paintOrderList(PaintOrderListType type); 815 void computePaintOrderList(PaintOrderListType type, Vector<RefPtr<Node> >&);
819 816
820 private: 817 private:
821 enum CollectLayersBehavior { StopAtStackingContexts, StopAtStackingContainer s }; 818 enum CollectLayersBehavior { StopAtStackingContexts, StopAtStackingContainer s };
822 819
823 void updateZOrderLists(); 820 void updateZOrderLists();
824 void rebuildZOrderLists(); 821 void rebuildZOrderLists();
825 // See the comment for collectLayers for information about the layerToForceA sStackingContainer parameter. 822 // See the comment for collectLayers for information about the layerToForceA sStackingContainer parameter.
826 void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> > &, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingCont ainer = 0); 823 void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> > &, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingCont ainer = 0);
827 void clearZOrderLists(); 824 void clearZOrderLists();
828 825
829 void updateNormalFlowList(); 826 void updateNormalFlowList();
830 827
831 bool isStackingContext(const RenderStyle* style) const { return !style->hasA utoZIndex() || isRootLayer(); } 828 bool isStackingContext(const RenderStyle* style) const { return !style->hasA utoZIndex() || isRootLayer(); }
832 829
833 bool isDirtyStackingContainer() const { return m_zOrderListsDirty && isStack ingContainer(); } 830 bool isDirtyStackingContainer() const { return m_zOrderListsDirty && isStack ingContainer(); }
834 831
835 void setAncestorChainHasSelfPaintingLayerDescendant(); 832 void setAncestorChainHasSelfPaintingLayerDescendant();
836 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); 833 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
837 834
838 bool acceleratedCompositingForOverflowScrollEnabled() const; 835 bool acceleratedCompositingForOverflowScrollEnabled() const;
839 void updateDescendantsAreContiguousInStackingOrder(); 836 void updateDescendantsAreContiguousInStackingOrder();
840 void updateDescendantsAreContiguousInStackingOrderRecursive(const HashMap<co nst RenderLayer*, int>&, int& minIndex, int& maxIndex, int& count, bool firstIte ration); 837 void updateDescendantsAreContiguousInStackingOrderRecursive(const HashMap<co nst RenderLayer*, int>&, int& minIndex, int& maxIndex, int& count, bool firstIte ration);
841 void collectBeforePromotionZOrderList(RenderLayer* ancestorStackingContext, OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, OwnPtr<Vector<RenderL ayer*> >& negZOrderListBeforePromote, size_t& posZOrderListSizeBeforePromote, si ze_t& negZOrderListSizeBeforePromote); 838 void collectBeforePromotionZOrderList(RenderLayer* ancestorStackingContext, OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, OwnPtr<Vector<RenderL ayer*> >& negZOrderListBeforePromote);
842 void collectAfterPromotionZOrderList(RenderLayer* ancestorStackingContext, O wnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, OwnPtr<Vector<RenderLay er*> >& negZOrderListAfterPromote, size_t& posZOrderListSizeAfterPromote, size_t & negZOrderListSizeAfterPromote); 839 void collectAfterPromotionZOrderList(RenderLayer* ancestorStackingContext, O wnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, OwnPtr<Vector<RenderLay er*> >& negZOrderListAfterPromote);
843 840
844 void computeRepaintRects(const RenderLayerModelObject* repaintContainer, con st RenderGeometryMap* = 0); 841 void computeRepaintRects(const RenderLayerModelObject* repaintContainer, con st RenderGeometryMap* = 0);
845 void computeRepaintRectsIncludingDescendants(); 842 void computeRepaintRectsIncludingDescendants();
846 void clearRepaintRects(); 843 void clearRepaintRects();
847 844
848 void clipToRect(RenderLayer* rootLayer, GraphicsContext*, const LayoutRect& paintDirtyRect, const ClipRect&, 845 void clipToRect(RenderLayer* rootLayer, GraphicsContext*, const LayoutRect& paintDirtyRect, const ClipRect&,
849 BorderRadiusClippingRule = IncludeSelfForBorderRadius); 846 BorderRadiusClippingRule = IncludeSelfForBorderRadius);
850 void restoreClip(GraphicsContext*, const LayoutRect& paintDirtyRect, const C lipRect&); 847 void restoreClip(GraphicsContext*, const LayoutRect& paintDirtyRect, const C lipRect&);
851 848
852 bool shouldRepaintAfterLayout() const; 849 bool shouldRepaintAfterLayout() const;
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after
1314 1311
1315 } // namespace WebCore 1312 } // namespace WebCore
1316 1313
1317 #ifndef NDEBUG 1314 #ifndef NDEBUG
1318 // Outside the WebCore namespace for ease of invocation from gdb. 1315 // Outside the WebCore namespace for ease of invocation from gdb.
1319 void showLayerTree(const WebCore::RenderLayer*); 1316 void showLayerTree(const WebCore::RenderLayer*);
1320 void showLayerTree(const WebCore::RenderObject*); 1317 void showLayerTree(const WebCore::RenderObject*);
1321 #endif 1318 #endif
1322 1319
1323 #endif // RenderLayer_h 1320 #endif // RenderLayer_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698