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 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 | 871 |
872 enum ForceNeedsCompositedScrollingMode { | 872 enum ForceNeedsCompositedScrollingMode { |
873 DoNotForceCompositedScrolling = 0, | 873 DoNotForceCompositedScrolling = 0, |
874 CompositedScrollingAlwaysOn = 1, | 874 CompositedScrollingAlwaysOn = 1, |
875 CompositedScrollingAlwaysOff = 2 | 875 CompositedScrollingAlwaysOff = 2 |
876 }; | 876 }; |
877 | 877 |
878 void setForceNeedsCompositedScrolling(ForceNeedsCompositedScrollingMode); | 878 void setForceNeedsCompositedScrolling(ForceNeedsCompositedScrollingMode); |
879 | 879 |
880 private: | 880 private: |
881 enum CollectLayersBehavior { StopAtStackingContexts, StopAtStackingContainer
s }; | 881 enum CollectLayersBehavior { |
| 882 ForceLayerToStackingContainer, |
| 883 OverflowScrollCanBeStackingContainers, |
| 884 OnlyStackingContextsCanBeStackingContainers |
| 885 }; |
882 | 886 |
883 void updateZOrderLists(); | 887 void updateZOrderLists(); |
884 void rebuildZOrderLists(); | 888 void rebuildZOrderLists(); |
885 // See the comment for collectLayers for information about the layerToForceA
sStackingContainer parameter. | 889 // See the comment for collectLayers for information about the layerToForceA
sStackingContainer parameter. |
886 void rebuildZOrderLists(CollectLayersBehavior, OwnPtr<Vector<RenderLayer*> >
&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingCont
ainer = 0); | 890 void rebuildZOrderLists(OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<Render
Layer*> >&, const RenderLayer* layerToForceAsStackingContainer = 0, CollectLayer
sBehavior = OverflowScrollCanBeStackingContainers); |
887 void clearZOrderLists(); | 891 void clearZOrderLists(); |
888 | 892 |
889 void updateNormalFlowList(); | 893 void updateNormalFlowList(); |
890 | 894 |
891 bool isStackingContext(const RenderStyle* style) const { return !style->hasA
utoZIndex() || isRootLayer(); } | 895 bool isStackingContext(const RenderStyle* style) const { return !style->hasA
utoZIndex() || isRootLayer(); } |
892 | 896 |
893 bool isDirtyStackingContainer() const { return m_zOrderListsDirty && isStack
ingContainer(); } | 897 bool isDirtyStackingContainer() const { return m_zOrderListsDirty && isStack
ingContainer(); } |
894 | 898 |
895 void setAncestorChainHasSelfPaintingLayerDescendant(); | 899 void setAncestorChainHasSelfPaintingLayerDescendant(); |
896 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); | 900 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
955 void setParent(RenderLayer* parent); | 959 void setParent(RenderLayer* parent); |
956 void setFirstChild(RenderLayer* first) { m_first = first; } | 960 void setFirstChild(RenderLayer* first) { m_first = first; } |
957 void setLastChild(RenderLayer* last) { m_last = last; } | 961 void setLastChild(RenderLayer* last) { m_last = last; } |
958 | 962 |
959 LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRende
rBox(renderer())->location() : LayoutPoint(); } | 963 LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRende
rBox(renderer())->location() : LayoutPoint(); } |
960 | 964 |
961 // layerToForceAsStackingContainer allows us to build pre-promotion and | 965 // layerToForceAsStackingContainer allows us to build pre-promotion and |
962 // post-promotion layer lists, by allowing us to treat a layer as if it is a | 966 // post-promotion layer lists, by allowing us to treat a layer as if it is a |
963 // stacking context, without adding a new member to RenderLayer or modifying | 967 // stacking context, without adding a new member to RenderLayer or modifying |
964 // the style (which could cause extra allocations). | 968 // the style (which could cause extra allocations). |
965 void collectLayers(bool includeHiddenLayers, CollectLayersBehavior, OwnPtr<V
ector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layer
ToForceAsStackingContainer = 0); | 969 void collectLayers(bool includeHiddenLayers, OwnPtr<Vector<RenderLayer*> >&,
OwnPtr<Vector<RenderLayer*> >&, const RenderLayer* layerToForceAsStackingContai
ner = 0, CollectLayersBehavior = OverflowScrollCanBeStackingContainers); |
966 | 970 |
967 struct LayerPaintingInfo { | 971 struct LayerPaintingInfo { |
968 LayerPaintingInfo(RenderLayer* inRootLayer, const LayoutRect& inDirtyRec
t, PaintBehavior inPaintBehavior, const LayoutSize& inSubPixelAccumulation, Rend
erObject* inPaintingRoot = 0, RenderRegion*inRegion = 0, OverlapTestRequestMap*
inOverlapTestRequests = 0) | 972 LayerPaintingInfo(RenderLayer* inRootLayer, const LayoutRect& inDirtyRec
t, PaintBehavior inPaintBehavior, const LayoutSize& inSubPixelAccumulation, Rend
erObject* inPaintingRoot = 0, RenderRegion*inRegion = 0, OverlapTestRequestMap*
inOverlapTestRequests = 0) |
969 : rootLayer(inRootLayer) | 973 : rootLayer(inRootLayer) |
970 , paintingRoot(inPaintingRoot) | 974 , paintingRoot(inPaintingRoot) |
971 , paintDirtyRect(inDirtyRect) | 975 , paintDirtyRect(inDirtyRect) |
972 , subPixelAccumulation(inSubPixelAccumulation) | 976 , subPixelAccumulation(inSubPixelAccumulation) |
973 , region(inRegion) | 977 , region(inRegion) |
974 , overlapTestRequests(inOverlapTestRequests) | 978 , overlapTestRequests(inOverlapTestRequests) |
975 , paintBehavior(inPaintBehavior) | 979 , paintBehavior(inPaintBehavior) |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1039 | 1043 |
1040 bool listBackgroundIsKnownToBeOpaqueInRect(const Vector<RenderLayer*>*, cons
t LayoutRect&) const; | 1044 bool listBackgroundIsKnownToBeOpaqueInRect(const Vector<RenderLayer*>*, cons
t LayoutRect&) const; |
1041 | 1045 |
1042 void computeScrollDimensions(); | 1046 void computeScrollDimensions(); |
1043 bool hasHorizontalOverflow() const; | 1047 bool hasHorizontalOverflow() const; |
1044 bool hasVerticalOverflow() const; | 1048 bool hasVerticalOverflow() const; |
1045 bool hasScrollableHorizontalOverflow() const; | 1049 bool hasScrollableHorizontalOverflow() const; |
1046 bool hasScrollableVerticalOverflow() const; | 1050 bool hasScrollableVerticalOverflow() const; |
1047 | 1051 |
1048 bool shouldBeNormalFlowOnly() const; | 1052 bool shouldBeNormalFlowOnly() const; |
| 1053 bool shouldBeNormalFlowOnlyIgnoringCompositedScrolling() const; |
1049 | 1054 |
1050 bool shouldBeSelfPaintingLayer() const; | 1055 bool shouldBeSelfPaintingLayer() const; |
1051 | 1056 |
1052 int scrollPosition(Scrollbar*) const; | 1057 int scrollPosition(Scrollbar*) const; |
1053 | 1058 |
1054 // ScrollableArea interface | 1059 // ScrollableArea interface |
1055 virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); | 1060 virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&); |
1056 virtual void invalidateScrollCornerRect(const IntRect&); | 1061 virtual void invalidateScrollCornerRect(const IntRect&); |
1057 virtual bool isActive() const; | 1062 virtual bool isActive() const; |
1058 virtual bool isScrollCornerVisible() const; | 1063 virtual bool isScrollCornerVisible() const; |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1367 | 1372 |
1368 } // namespace WebCore | 1373 } // namespace WebCore |
1369 | 1374 |
1370 #ifndef NDEBUG | 1375 #ifndef NDEBUG |
1371 // Outside the WebCore namespace for ease of invocation from gdb. | 1376 // Outside the WebCore namespace for ease of invocation from gdb. |
1372 void showLayerTree(const WebCore::RenderLayer*); | 1377 void showLayerTree(const WebCore::RenderLayer*); |
1373 void showLayerTree(const WebCore::RenderObject*); | 1378 void showLayerTree(const WebCore::RenderObject*); |
1374 #endif | 1379 #endif |
1375 | 1380 |
1376 #endif // RenderLayer_h | 1381 #endif // RenderLayer_h |
OLD | NEW |