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 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 TransformationMatrix perspectiveTransform() const; | 771 TransformationMatrix perspectiveTransform() const; |
772 FloatPoint perspectiveOrigin() const; | 772 FloatPoint perspectiveOrigin() const; |
773 bool preserves3D() const { return renderer()->style()->transformStyle3D() ==
TransformStyle3DPreserve3D; } | 773 bool preserves3D() const { return renderer()->style()->transformStyle3D() ==
TransformStyle3DPreserve3D; } |
774 bool has3DTransform() const { return m_transform && !m_transform->isAffine()
; } | 774 bool has3DTransform() const { return m_transform && !m_transform->isAffine()
; } |
775 | 775 |
776 virtual void filterNeedsRepaint(); | 776 virtual void filterNeedsRepaint(); |
777 bool hasFilter() const { return renderer()->hasFilter(); } | 777 bool hasFilter() const { return renderer()->hasFilter(); } |
778 | 778 |
779 bool hasBlendMode() const; | 779 bool hasBlendMode() const; |
780 | 780 |
781 // Overloaded new operator. Derived classes must override operator new | 781 #if ENABLE(PARTITION_ALLOC) |
782 // in order to allocate out of the RenderArena. | 782 void* operator new(size_t); |
783 void* operator new(size_t, RenderArena*); | 783 #endif |
784 | |
785 // Overridden to prevent the normal delete from being called. | |
786 void operator delete(void*, size_t); | |
787 | 784 |
788 bool isComposited() const { return m_backing != 0; } | 785 bool isComposited() const { return m_backing != 0; } |
789 bool hasCompositedMask() const; | 786 bool hasCompositedMask() const; |
790 RenderLayerBacking* backing() const { return m_backing.get(); } | 787 RenderLayerBacking* backing() const { return m_backing.get(); } |
791 RenderLayerBacking* ensureBacking(); | 788 RenderLayerBacking* ensureBacking(); |
792 void clearBacking(bool layerBeingDestroyed = false); | 789 void clearBacking(bool layerBeingDestroyed = false); |
793 virtual GraphicsLayer* layerForScrolling() const; | 790 virtual GraphicsLayer* layerForScrolling() const; |
794 virtual GraphicsLayer* layerForHorizontalScrollbar() const; | 791 virtual GraphicsLayer* layerForHorizontalScrollbar() const; |
795 virtual GraphicsLayer* layerForVerticalScrollbar() const; | 792 virtual GraphicsLayer* layerForVerticalScrollbar() const; |
796 virtual GraphicsLayer* layerForScrollCorner() const; | 793 virtual GraphicsLayer* layerForScrollCorner() const; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 | 865 |
869 enum ForceNeedsCompositedScrollingMode { | 866 enum ForceNeedsCompositedScrollingMode { |
870 DoNotForceCompositedScrolling = 0, | 867 DoNotForceCompositedScrolling = 0, |
871 CompositedScrollingAlwaysOn = 1, | 868 CompositedScrollingAlwaysOn = 1, |
872 CompositedScrollingAlwaysOff = 2 | 869 CompositedScrollingAlwaysOff = 2 |
873 }; | 870 }; |
874 | 871 |
875 void setForceNeedsCompositedScrolling(ForceNeedsCompositedScrollingMode); | 872 void setForceNeedsCompositedScrolling(ForceNeedsCompositedScrollingMode); |
876 | 873 |
877 private: | 874 private: |
| 875 #if ENABLE(PARTITION_ALLOC) |
| 876 void operator delete(void*); |
| 877 #endif |
| 878 |
878 enum CollectLayersBehavior { | 879 enum CollectLayersBehavior { |
879 ForceLayerToStackingContainer, | 880 ForceLayerToStackingContainer, |
880 OverflowScrollCanBeStackingContainers, | 881 OverflowScrollCanBeStackingContainers, |
881 OnlyStackingContextsCanBeStackingContainers | 882 OnlyStackingContextsCanBeStackingContainers |
882 }; | 883 }; |
883 | 884 |
884 void updateZOrderLists(); | 885 void updateZOrderLists(); |
885 void rebuildZOrderLists(); | 886 void rebuildZOrderLists(); |
886 // See the comment for collectLayers for information about the layerToForceA
sStackingContainer parameter. | 887 // See the comment for collectLayers for information about the layerToForceA
sStackingContainer parameter. |
887 void rebuildZOrderLists(OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<Render
Layer*> >&, const RenderLayer* layerToForceAsStackingContainer = 0, CollectLayer
sBehavior = OverflowScrollCanBeStackingContainers); | 888 void rebuildZOrderLists(OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<Render
Layer*> >&, const RenderLayer* layerToForceAsStackingContainer = 0, CollectLayer
sBehavior = OverflowScrollCanBeStackingContainers); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
944 HasChangedAncestor = 1 << 3 | 945 HasChangedAncestor = 1 << 3 |
945 }; | 946 }; |
946 typedef unsigned UpdateLayerPositionsAfterScrollFlags; | 947 typedef unsigned UpdateLayerPositionsAfterScrollFlags; |
947 void updateLayerPositionsAfterScroll(RenderGeometryMap*, UpdateLayerPosition
sAfterScrollFlags = NoFlag); | 948 void updateLayerPositionsAfterScroll(RenderGeometryMap*, UpdateLayerPosition
sAfterScrollFlags = NoFlag); |
948 | 949 |
949 friend IntSize RenderBox::scrolledContentOffset() const; | 950 friend IntSize RenderBox::scrolledContentOffset() const; |
950 IntSize scrolledContentOffset() const { return m_scrollOffset; } | 951 IntSize scrolledContentOffset() const { return m_scrollOffset; } |
951 | 952 |
952 IntSize clampScrollOffset(const IntSize&) const; | 953 IntSize clampScrollOffset(const IntSize&) const; |
953 | 954 |
954 // The normal operator new is disallowed on all render objects. | |
955 void* operator new(size_t) throw(); | |
956 | |
957 void setNextSibling(RenderLayer* next) { m_next = next; } | 955 void setNextSibling(RenderLayer* next) { m_next = next; } |
958 void setPreviousSibling(RenderLayer* prev) { m_previous = prev; } | 956 void setPreviousSibling(RenderLayer* prev) { m_previous = prev; } |
959 void setParent(RenderLayer* parent); | 957 void setParent(RenderLayer* parent); |
960 void setFirstChild(RenderLayer* first) { m_first = first; } | 958 void setFirstChild(RenderLayer* first) { m_first = first; } |
961 void setLastChild(RenderLayer* last) { m_last = last; } | 959 void setLastChild(RenderLayer* last) { m_last = last; } |
962 | 960 |
963 LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRende
rBox(renderer())->location() : LayoutPoint(); } | 961 LayoutPoint renderBoxLocation() const { return renderer()->isBox() ? toRende
rBox(renderer())->location() : LayoutPoint(); } |
964 | 962 |
965 // layerToForceAsStackingContainer allows us to build pre-promotion and | 963 // layerToForceAsStackingContainer allows us to build pre-promotion and |
966 // post-promotion layer lists, by allowing us to treat a layer as if it is a | 964 // post-promotion layer lists, by allowing us to treat a layer as if it is a |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1141 void setCompositingReasons(CompositingReasons reasons) { m_compositingProper
ties.compositingReasons = reasons; } | 1139 void setCompositingReasons(CompositingReasons reasons) { m_compositingProper
ties.compositingReasons = reasons; } |
1142 CompositingReasons compositingReasons() const { return m_compositingProperti
es.compositingReasons; } | 1140 CompositingReasons compositingReasons() const { return m_compositingProperti
es.compositingReasons; } |
1143 | 1141 |
1144 // Returns true if z ordering would not change if this layer were a stacking
container. | 1142 // Returns true if z ordering would not change if this layer were a stacking
container. |
1145 bool canBeStackingContainer() const; | 1143 bool canBeStackingContainer() const; |
1146 | 1144 |
1147 friend class RenderLayerBacking; | 1145 friend class RenderLayerBacking; |
1148 friend class RenderLayerCompositor; | 1146 friend class RenderLayerCompositor; |
1149 friend class RenderLayerModelObject; | 1147 friend class RenderLayerModelObject; |
1150 | 1148 |
1151 // Only safe to call from RenderBoxModelObject::destroyLayer(RenderArena*) | 1149 // Only safe to call from RenderBoxModelObject::destroyLayer() |
1152 void destroy(RenderArena*); | 1150 void destroy(); |
1153 | 1151 |
1154 LayoutUnit overflowTop() const; | 1152 LayoutUnit overflowTop() const; |
1155 LayoutUnit overflowBottom() const; | 1153 LayoutUnit overflowBottom() const; |
1156 LayoutUnit overflowLeft() const; | 1154 LayoutUnit overflowLeft() const; |
1157 LayoutUnit overflowRight() const; | 1155 LayoutUnit overflowRight() const; |
1158 | 1156 |
1159 IntRect rectForHorizontalScrollbar(const IntRect& borderBoxRect) const; | 1157 IntRect rectForHorizontalScrollbar(const IntRect& borderBoxRect) const; |
1160 IntRect rectForVerticalScrollbar(const IntRect& borderBoxRect) const; | 1158 IntRect rectForVerticalScrollbar(const IntRect& borderBoxRect) const; |
1161 | 1159 |
1162 LayoutUnit verticalScrollbarStart(int minX, int maxX) const; | 1160 LayoutUnit verticalScrollbarStart(int minX, int maxX) const; |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1370 | 1368 |
1371 } // namespace WebCore | 1369 } // namespace WebCore |
1372 | 1370 |
1373 #ifndef NDEBUG | 1371 #ifndef NDEBUG |
1374 // Outside the WebCore namespace for ease of invocation from gdb. | 1372 // Outside the WebCore namespace for ease of invocation from gdb. |
1375 void showLayerTree(const WebCore::RenderLayer*); | 1373 void showLayerTree(const WebCore::RenderLayer*); |
1376 void showLayerTree(const WebCore::RenderObject*); | 1374 void showLayerTree(const WebCore::RenderObject*); |
1377 #endif | 1375 #endif |
1378 | 1376 |
1379 #endif // RenderLayer_h | 1377 #endif // RenderLayer_h |
OLD | NEW |