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 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 3 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
4 * | 4 * |
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
6 * | 6 * |
7 * Other contributors: | 7 * Other contributors: |
8 * Robert O'Callahan <roc+@cs.cmu.edu> | 8 * Robert O'Callahan <roc+@cs.cmu.edu> |
9 * David Baron <dbaron@fas.harvard.edu> | 9 * David Baron <dbaron@fas.harvard.edu> |
10 * Christian Biesinger <cbiesinger@web.de> | 10 * Christian Biesinger <cbiesinger@web.de> |
(...skipping 30 matching lines...) Expand all Loading... |
41 * If you do not delete the provisions above, a recipient may use your | 41 * If you do not delete the provisions above, a recipient may use your |
42 * version of this file under any of the LGPL, the MPL or the GPL. | 42 * version of this file under any of the LGPL, the MPL or the GPL. |
43 */ | 43 */ |
44 | 44 |
45 #ifndef PaintLayerStackingNode_h | 45 #ifndef PaintLayerStackingNode_h |
46 #define PaintLayerStackingNode_h | 46 #define PaintLayerStackingNode_h |
47 | 47 |
48 #include "core/CoreExport.h" | 48 #include "core/CoreExport.h" |
49 #include "core/layout/LayoutBoxModelObject.h" | 49 #include "core/layout/LayoutBoxModelObject.h" |
50 #include "wtf/Noncopyable.h" | 50 #include "wtf/Noncopyable.h" |
51 #include "wtf/OwnPtr.h" | |
52 #include "wtf/Vector.h" | 51 #include "wtf/Vector.h" |
| 52 #include <memory> |
53 | 53 |
54 namespace blink { | 54 namespace blink { |
55 | 55 |
56 class PaintLayer; | 56 class PaintLayer; |
57 class PaintLayerCompositor; | 57 class PaintLayerCompositor; |
58 class ComputedStyle; | 58 class ComputedStyle; |
59 class LayoutBoxModelObject; | 59 class LayoutBoxModelObject; |
60 | 60 |
61 // PaintLayerStackingNode represents a stacked element which is either a | 61 // PaintLayerStackingNode represents a stacked element which is either a |
62 // stacking context (i.e. an element with non-auto z-index) or a positioned | 62 // stacking context (i.e. an element with non-auto z-index) or a positioned |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 } | 142 } |
143 | 143 |
144 Vector<PaintLayerStackingNode*>* negZOrderList() const | 144 Vector<PaintLayerStackingNode*>* negZOrderList() const |
145 { | 145 { |
146 ASSERT(!m_zOrderListsDirty); | 146 ASSERT(!m_zOrderListsDirty); |
147 ASSERT(isStackingContext() || !m_negZOrderList); | 147 ASSERT(isStackingContext() || !m_negZOrderList); |
148 return m_negZOrderList.get(); | 148 return m_negZOrderList.get(); |
149 } | 149 } |
150 | 150 |
151 void rebuildZOrderLists(); | 151 void rebuildZOrderLists(); |
152 void collectLayers(OwnPtr<Vector<PaintLayerStackingNode*>>& posZOrderList, O
wnPtr<Vector<PaintLayerStackingNode*>>& negZOrderList); | 152 void collectLayers(std::unique_ptr<Vector<PaintLayerStackingNode*>>& posZOrd
erList, std::unique_ptr<Vector<PaintLayerStackingNode*>>& negZOrderList); |
153 | 153 |
154 #if ENABLE(ASSERT) | 154 #if ENABLE(ASSERT) |
155 bool isInStackingParentZOrderLists() const; | 155 bool isInStackingParentZOrderLists() const; |
156 void updateStackingParentForZOrderLists(PaintLayerStackingNode* stackingPare
nt); | 156 void updateStackingParentForZOrderLists(PaintLayerStackingNode* stackingPare
nt); |
157 void setStackingParent(PaintLayerStackingNode* stackingParent) { m_stackingP
arent = stackingParent; } | 157 void setStackingParent(PaintLayerStackingNode* stackingParent) { m_stackingP
arent = stackingParent; } |
158 #endif | 158 #endif |
159 | 159 |
160 bool isDirtyStackingContext() const { return m_zOrderListsDirty && isStackin
gContext(); } | 160 bool isDirtyStackingContext() const { return m_zOrderListsDirty && isStackin
gContext(); } |
161 | 161 |
162 PaintLayerCompositor* compositor() const; | 162 PaintLayerCompositor* compositor() const; |
163 // We can't return a LayoutBox as LayoutInline can be a stacking context. | 163 // We can't return a LayoutBox as LayoutInline can be a stacking context. |
164 LayoutBoxModelObject* layoutObject() const; | 164 LayoutBoxModelObject* layoutObject() const; |
165 | 165 |
166 PaintLayer* m_layer; | 166 PaintLayer* m_layer; |
167 | 167 |
168 // m_posZOrderList holds a sorted list of all the descendant nodes within | 168 // m_posZOrderList holds a sorted list of all the descendant nodes within |
169 // that have z-indices of 0 (or is treated as 0 for positioned objects) or g
reater. | 169 // that have z-indices of 0 (or is treated as 0 for positioned objects) or g
reater. |
170 // m_negZOrderList holds descendants within our stacking context with | 170 // m_negZOrderList holds descendants within our stacking context with |
171 // negative z-indices. | 171 // negative z-indices. |
172 OwnPtr<Vector<PaintLayerStackingNode*>> m_posZOrderList; | 172 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_posZOrderList; |
173 OwnPtr<Vector<PaintLayerStackingNode*>> m_negZOrderList; | 173 std::unique_ptr<Vector<PaintLayerStackingNode*>> m_negZOrderList; |
174 | 174 |
175 // This boolean caches whether the z-order lists above are dirty. | 175 // This boolean caches whether the z-order lists above are dirty. |
176 // It is only ever set for stacking contexts, as no other element can | 176 // It is only ever set for stacking contexts, as no other element can |
177 // have z-order lists. | 177 // have z-order lists. |
178 bool m_zOrderListsDirty : 1; | 178 bool m_zOrderListsDirty : 1; |
179 | 179 |
180 // This attribute caches whether the element was stacked. It's needed to che
ck the | 180 // This attribute caches whether the element was stacked. It's needed to che
ck the |
181 // current stacked status (instead of the new stacked status determined by t
he new | 181 // current stacked status (instead of the new stacked status determined by t
he new |
182 // style which has not been realized yet) when a layer is removed due to sty
le change. | 182 // style which has not been realized yet) when a layer is removed due to sty
le change. |
183 bool m_isStacked : 1; | 183 bool m_isStacked : 1; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 | 231 |
232 private: | 232 private: |
233 PaintLayerStackingNode* m_stackingNode; | 233 PaintLayerStackingNode* m_stackingNode; |
234 bool m_previousMutationAllowedState; | 234 bool m_previousMutationAllowedState; |
235 }; | 235 }; |
236 #endif | 236 #endif |
237 | 237 |
238 } // namespace blink | 238 } // namespace blink |
239 | 239 |
240 #endif // PaintLayerStackingNode_h | 240 #endif // PaintLayerStackingNode_h |
OLD | NEW |