OLD | NEW |
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 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 | 706 |
707 void* operator new(size_t); | 707 void* operator new(size_t); |
708 // Only safe to call from RenderLayerModelObject::destroyLayer() | 708 // Only safe to call from RenderLayerModelObject::destroyLayer() |
709 void operator delete(void*); | 709 void operator delete(void*); |
710 | 710 |
711 bool isComposited() const { return m_backing != 0; } | 711 bool isComposited() const { return m_backing != 0; } |
712 bool hasCompositedMask() const; | 712 bool hasCompositedMask() const; |
713 RenderLayerBacking* backing() const { return m_backing.get(); } | 713 RenderLayerBacking* backing() const { return m_backing.get(); } |
714 RenderLayerBacking* ensureBacking(); | 714 RenderLayerBacking* ensureBacking(); |
715 void clearBacking(bool layerBeingDestroyed = false); | 715 void clearBacking(bool layerBeingDestroyed = false); |
| 716 bool adjustForForceCompositedScrollingMode(bool) const; |
716 bool needsCompositedScrolling() const; | 717 bool needsCompositedScrolling() const; |
717 bool needsToBeStackingContainer() const; | 718 bool needsToBeStackingContainer() const; |
718 | 719 |
719 bool hasScrollParent() const; | 720 bool hasScrollParent() const; |
720 | 721 |
721 bool needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const
RenderStyle* newStyle) const; | 722 bool needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const
RenderStyle* newStyle) const; |
722 bool needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, c
onst RenderStyle* newStyle) const; | 723 bool needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, c
onst RenderStyle* newStyle) const; |
723 bool needsCompositingLayersRebuiltForFilters(const RenderStyle* oldStyle, co
nst RenderStyle* newStyle, bool didPaintWithFilters) const; | 724 bool needsCompositingLayersRebuiltForFilters(const RenderStyle* oldStyle, co
nst RenderStyle* newStyle, bool didPaintWithFilters) const; |
724 | 725 |
725 bool paintsWithTransparency(PaintBehavior paintBehavior) const | 726 bool paintsWithTransparency(PaintBehavior paintBehavior) const |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
830 | 831 |
831 void setAncestorChainHasSelfPaintingLayerDescendant(); | 832 void setAncestorChainHasSelfPaintingLayerDescendant(); |
832 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); | 833 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); |
833 | 834 |
834 void setAncestorChainHasOutOfFlowPositionedDescendant(); | 835 void setAncestorChainHasOutOfFlowPositionedDescendant(); |
835 void dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus(); | 836 void dirtyAncestorChainHasOutOfFlowPositionedDescendantStatus(); |
836 | 837 |
837 bool acceleratedCompositingForOverflowScrollEnabled() const; | 838 bool acceleratedCompositingForOverflowScrollEnabled() const; |
838 // FIXME: This is a temporary flag and should be removed once accelerated | 839 // FIXME: This is a temporary flag and should be removed once accelerated |
839 // overflow scroll is ready (crbug.com/254111). | 840 // overflow scroll is ready (crbug.com/254111). |
| 841 bool useCompositorDrivenAcceleratedScrolling() const; |
840 bool compositorDrivenAcceleratedScrollingEnabled() const; | 842 bool compositorDrivenAcceleratedScrollingEnabled() const; |
841 void updateCanBeStackingContainer(); | 843 void updateCanBeStackingContainer(); |
842 void collectBeforePromotionZOrderList(RenderLayer* ancestorStackingContext,
OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, OwnPtr<Vector<RenderL
ayer*> >& negZOrderListBeforePromote); | 844 void collectBeforePromotionZOrderList(RenderLayer* ancestorStackingContext,
OwnPtr<Vector<RenderLayer*> >& posZOrderListBeforePromote, OwnPtr<Vector<RenderL
ayer*> >& negZOrderListBeforePromote); |
843 void collectAfterPromotionZOrderList(RenderLayer* ancestorStackingContext, O
wnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, OwnPtr<Vector<RenderLay
er*> >& negZOrderListAfterPromote); | 845 void collectAfterPromotionZOrderList(RenderLayer* ancestorStackingContext, O
wnPtr<Vector<RenderLayer*> >& posZOrderListAfterPromote, OwnPtr<Vector<RenderLay
er*> >& negZOrderListAfterPromote); |
844 | 846 |
845 void dirtyNormalFlowListCanBePromotedToStackingContainer(); | 847 void dirtyNormalFlowListCanBePromotedToStackingContainer(); |
846 void dirtySiblingStackingContextCanBePromotedToStackingContainer(); | 848 void dirtySiblingStackingContextCanBePromotedToStackingContainer(); |
847 | 849 |
848 void computeRepaintRects(const RenderLayerModelObject* repaintContainer, con
st RenderGeometryMap* = 0); | 850 void computeRepaintRects(const RenderLayerModelObject* repaintContainer, con
st RenderGeometryMap* = 0); |
849 void computeRepaintRectsIncludingDescendants(); | 851 void computeRepaintRectsIncludingDescendants(); |
850 void clearRepaintRects(); | 852 void clearRepaintRects(); |
851 | 853 |
852 void clipToRect(RenderLayer* rootLayer, GraphicsContext*, const LayoutRect&
paintDirtyRect, const ClipRect&, | 854 void clipToRect(RenderLayer* rootLayer, GraphicsContext*, const LayoutRect&
paintDirtyRect, const ClipRect&, |
853 BorderRadiusClippingRule = IncludeSelfForBorderRadius); | 855 BorderRadiusClippingRule = IncludeSelfForBorderRadius); |
854 void restoreClip(GraphicsContext*, const LayoutRect& paintDirtyRect, const C
lipRect&); | 856 void restoreClip(GraphicsContext*, const LayoutRect& paintDirtyRect, const C
lipRect&); |
855 | 857 |
856 bool shouldRepaintAfterLayout() const; | 858 bool shouldRepaintAfterLayout() const; |
857 | 859 |
858 void updateSelfPaintingLayer(); | 860 void updateSelfPaintingLayer(); |
859 void updateIsNormalFlowOnly(); | 861 void updateIsNormalFlowOnly(); |
860 void updateVisibilityAfterStyleChange(const RenderStyle* oldStyle); | 862 void updateVisibilityAfterStyleChange(const RenderStyle* oldStyle); |
861 void updateStackingContextsAfterStyleChange(const RenderStyle* oldStyle); | 863 void updateStackingContextsAfterStyleChange(const RenderStyle* oldStyle); |
862 | 864 |
863 void updateScrollbarsAfterStyleChange(const RenderStyle* oldStyle); | 865 void updateScrollbarsAfterStyleChange(const RenderStyle* oldStyle); |
864 void updateScrollbarsAfterLayout(); | 866 void updateScrollbarsAfterLayout(); |
865 | 867 |
866 void updateOutOfFlowPositioned(const RenderStyle* oldStyle); | 868 void updateOutOfFlowPositioned(const RenderStyle* oldStyle); |
867 | 869 |
868 void setNeedsCompositedScrolling(bool); | 870 bool setNeedsCompositedScrolling(bool); |
| 871 bool setNeedsToBeStackingContainer(bool); |
869 void didUpdateNeedsCompositedScrolling(); | 872 void didUpdateNeedsCompositedScrolling(); |
870 | 873 |
871 // Returns true if the position changed. | 874 // Returns true if the position changed. |
872 bool updateLayerPosition(); | 875 bool updateLayerPosition(); |
873 | 876 |
874 void updateLayerPositions(RenderGeometryMap* = 0, UpdateLayerPositionsFlags
= defaultFlags); | 877 void updateLayerPositions(RenderGeometryMap* = 0, UpdateLayerPositionsFlags
= defaultFlags); |
875 | 878 |
876 enum UpdateLayerPositionsAfterScrollFlag { | 879 enum UpdateLayerPositionsAfterScrollFlag { |
877 NoFlag = 0, | 880 NoFlag = 0, |
878 IsOverflowScroll = 1 << 0, | 881 IsOverflowScroll = 1 << 0, |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1122 | 1125 |
1123 // This is true if we have an out-of-flow positioned descendant whose | 1126 // This is true if we have an out-of-flow positioned descendant whose |
1124 // containing block is our ancestor. If this is the case, the descendant | 1127 // containing block is our ancestor. If this is the case, the descendant |
1125 // may fall outside of our clip preventing things like opting into | 1128 // may fall outside of our clip preventing things like opting into |
1126 // composited scrolling (which causes clipping of all descendants). | 1129 // composited scrolling (which causes clipping of all descendants). |
1127 unsigned m_hasUnclippedDescendant : 1; | 1130 unsigned m_hasUnclippedDescendant : 1; |
1128 | 1131 |
1129 unsigned m_isUnclippedDescendant : 1; | 1132 unsigned m_isUnclippedDescendant : 1; |
1130 | 1133 |
1131 unsigned m_needsCompositedScrolling : 1; | 1134 unsigned m_needsCompositedScrolling : 1; |
1132 unsigned m_needsCompositedScrollingHasBeenRecorded : 1; | 1135 unsigned m_needsToBeStackingContainerHasBeenRecorded : 1; |
1133 unsigned m_willUseCompositedScrollingHasBeenRecorded : 1; | 1136 unsigned m_willUseCompositedScrollingHasBeenRecorded : 1; |
1134 | 1137 |
1135 unsigned m_isScrollableAreaHasBeenRecorded : 1; | 1138 unsigned m_isScrollableAreaHasBeenRecorded : 1; |
1136 | 1139 |
| 1140 unsigned m_needsToBeStackingContainer : 1; |
| 1141 |
1137 // If this is true, then no non-descendant appears between any of our | 1142 // If this is true, then no non-descendant appears between any of our |
1138 // descendants in stacking order. This is one of the requirements of being | 1143 // descendants in stacking order. This is one of the requirements of being |
1139 // able to safely become a stacking context. | 1144 // able to safely become a stacking context. |
1140 unsigned m_canBePromotedToStackingContainer : 1; | 1145 unsigned m_canBePromotedToStackingContainer : 1; |
1141 unsigned m_canBePromotedToStackingContainerDirty : 1; | 1146 unsigned m_canBePromotedToStackingContainerDirty : 1; |
1142 | 1147 |
1143 const unsigned m_isRootLayer : 1; | 1148 const unsigned m_isRootLayer : 1; |
1144 | 1149 |
1145 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp
arent layer, i.e., whether | 1150 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp
arent layer, i.e., whether |
1146 // we ended up painting this layer or any desce
ndants (and therefore need to | 1151 // we ended up painting this layer or any desce
ndants (and therefore need to |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 | 1311 |
1307 } // namespace WebCore | 1312 } // namespace WebCore |
1308 | 1313 |
1309 #ifndef NDEBUG | 1314 #ifndef NDEBUG |
1310 // Outside the WebCore namespace for ease of invocation from gdb. | 1315 // Outside the WebCore namespace for ease of invocation from gdb. |
1311 void showLayerTree(const WebCore::RenderLayer*); | 1316 void showLayerTree(const WebCore::RenderLayer*); |
1312 void showLayerTree(const WebCore::RenderObject*); | 1317 void showLayerTree(const WebCore::RenderObject*); |
1313 #endif | 1318 #endif |
1314 | 1319 |
1315 #endif // RenderLayer_h | 1320 #endif // RenderLayer_h |
OLD | NEW |