OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 11 matching lines...) Expand all Loading... |
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 */ | 29 */ |
30 | 30 |
31 #include "config.h" | 31 #include "config.h" |
32 #include "core/rendering/RenderLayerStackingNodeIterator.h" | 32 #include "core/layout/LayerStackingNodeIterator.h" |
33 | 33 |
34 #include "core/rendering/RenderLayer.h" | 34 #include "core/layout/Layer.h" |
35 #include "core/rendering/RenderLayerStackingNode.h" | 35 #include "core/layout/LayerStackingNode.h" |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 RenderLayerStackingNode* RenderLayerStackingNodeIterator::next() | 39 LayerStackingNode* LayerStackingNodeIterator::next() |
40 { | 40 { |
41 if (m_remainingChildren & NegativeZOrderChildren) { | 41 if (m_remainingChildren & NegativeZOrderChildren) { |
42 Vector<RenderLayerStackingNode*>* negZOrderList = m_root.negZOrderList()
; | 42 Vector<LayerStackingNode*>* negZOrderList = m_root.negZOrderList(); |
43 if (negZOrderList && m_index < negZOrderList->size()) | 43 if (negZOrderList && m_index < negZOrderList->size()) |
44 return negZOrderList->at(m_index++); | 44 return negZOrderList->at(m_index++); |
45 | 45 |
46 m_index = 0; | 46 m_index = 0; |
47 m_remainingChildren &= ~NegativeZOrderChildren; | 47 m_remainingChildren &= ~NegativeZOrderChildren; |
48 } | 48 } |
49 | 49 |
50 if (m_remainingChildren & NormalFlowChildren) { | 50 if (m_remainingChildren & NormalFlowChildren) { |
51 Vector<RenderLayerStackingNode*>* normalFlowList = m_root.normalFlowList
(); | 51 Vector<LayerStackingNode*>* normalFlowList = m_root.normalFlowList(); |
52 if (normalFlowList && m_index < normalFlowList->size()) | 52 if (normalFlowList && m_index < normalFlowList->size()) |
53 return normalFlowList->at(m_index++); | 53 return normalFlowList->at(m_index++); |
54 | 54 |
55 m_index = 0; | 55 m_index = 0; |
56 m_remainingChildren &= ~NormalFlowChildren; | 56 m_remainingChildren &= ~NormalFlowChildren; |
57 } | 57 } |
58 | 58 |
59 if (m_remainingChildren & PositiveZOrderChildren) { | 59 if (m_remainingChildren & PositiveZOrderChildren) { |
60 Vector<RenderLayerStackingNode*>* posZOrderList = m_root.posZOrderList()
; | 60 Vector<LayerStackingNode*>* posZOrderList = m_root.posZOrderList(); |
61 if (posZOrderList && m_index < posZOrderList->size()) | 61 if (posZOrderList && m_index < posZOrderList->size()) |
62 return posZOrderList->at(m_index++); | 62 return posZOrderList->at(m_index++); |
63 | 63 |
64 m_index = 0; | 64 m_index = 0; |
65 m_remainingChildren &= ~PositiveZOrderChildren; | 65 m_remainingChildren &= ~PositiveZOrderChildren; |
66 } | 66 } |
67 | 67 |
68 return 0; | 68 return 0; |
69 } | 69 } |
70 | 70 |
71 RenderLayerStackingNode* RenderLayerStackingNodeReverseIterator::next() | 71 LayerStackingNode* LayerStackingNodeReverseIterator::next() |
72 { | 72 { |
73 if (m_remainingChildren & NegativeZOrderChildren) { | 73 if (m_remainingChildren & NegativeZOrderChildren) { |
74 Vector<RenderLayerStackingNode*>* negZOrderList = m_root.negZOrderList()
; | 74 Vector<LayerStackingNode*>* negZOrderList = m_root.negZOrderList(); |
75 if (negZOrderList && m_index >= 0) | 75 if (negZOrderList && m_index >= 0) |
76 return negZOrderList->at(m_index--); | 76 return negZOrderList->at(m_index--); |
77 | 77 |
78 m_remainingChildren &= ~NegativeZOrderChildren; | 78 m_remainingChildren &= ~NegativeZOrderChildren; |
79 setIndexToLastItem(); | 79 setIndexToLastItem(); |
80 } | 80 } |
81 | 81 |
82 if (m_remainingChildren & NormalFlowChildren) { | 82 if (m_remainingChildren & NormalFlowChildren) { |
83 Vector<RenderLayerStackingNode*>* normalFlowList = m_root.normalFlowList
(); | 83 Vector<LayerStackingNode*>* normalFlowList = m_root.normalFlowList(); |
84 if (normalFlowList && m_index >= 0) | 84 if (normalFlowList && m_index >= 0) |
85 return normalFlowList->at(m_index--); | 85 return normalFlowList->at(m_index--); |
86 | 86 |
87 m_remainingChildren &= ~NormalFlowChildren; | 87 m_remainingChildren &= ~NormalFlowChildren; |
88 setIndexToLastItem(); | 88 setIndexToLastItem(); |
89 } | 89 } |
90 | 90 |
91 if (m_remainingChildren & PositiveZOrderChildren) { | 91 if (m_remainingChildren & PositiveZOrderChildren) { |
92 Vector<RenderLayerStackingNode*>* posZOrderList = m_root.posZOrderList()
; | 92 Vector<LayerStackingNode*>* posZOrderList = m_root.posZOrderList(); |
93 if (posZOrderList && m_index >= 0) | 93 if (posZOrderList && m_index >= 0) |
94 return posZOrderList->at(m_index--); | 94 return posZOrderList->at(m_index--); |
95 | 95 |
96 m_remainingChildren &= ~PositiveZOrderChildren; | 96 m_remainingChildren &= ~PositiveZOrderChildren; |
97 setIndexToLastItem(); | 97 setIndexToLastItem(); |
98 } | 98 } |
99 | 99 |
100 return 0; | 100 return 0; |
101 } | 101 } |
102 | 102 |
103 void RenderLayerStackingNodeReverseIterator::setIndexToLastItem() | 103 void LayerStackingNodeReverseIterator::setIndexToLastItem() |
104 { | 104 { |
105 if (m_remainingChildren & NegativeZOrderChildren) { | 105 if (m_remainingChildren & NegativeZOrderChildren) { |
106 Vector<RenderLayerStackingNode*>* negZOrderList = m_root.negZOrderList()
; | 106 Vector<LayerStackingNode*>* negZOrderList = m_root.negZOrderList(); |
107 if (negZOrderList) { | 107 if (negZOrderList) { |
108 m_index = negZOrderList->size() - 1; | 108 m_index = negZOrderList->size() - 1; |
109 return; | 109 return; |
110 } | 110 } |
111 | 111 |
112 m_remainingChildren &= ~NegativeZOrderChildren; | 112 m_remainingChildren &= ~NegativeZOrderChildren; |
113 } | 113 } |
114 | 114 |
115 if (m_remainingChildren & NormalFlowChildren) { | 115 if (m_remainingChildren & NormalFlowChildren) { |
116 Vector<RenderLayerStackingNode*>* normalFlowList = m_root.normalFlowList
(); | 116 Vector<LayerStackingNode*>* normalFlowList = m_root.normalFlowList(); |
117 if (normalFlowList) { | 117 if (normalFlowList) { |
118 m_index = normalFlowList->size() - 1; | 118 m_index = normalFlowList->size() - 1; |
119 return; | 119 return; |
120 } | 120 } |
121 | 121 |
122 m_remainingChildren &= ~NormalFlowChildren; | 122 m_remainingChildren &= ~NormalFlowChildren; |
123 } | 123 } |
124 | 124 |
125 if (m_remainingChildren & PositiveZOrderChildren) { | 125 if (m_remainingChildren & PositiveZOrderChildren) { |
126 Vector<RenderLayerStackingNode*>* posZOrderList = m_root.posZOrderList()
; | 126 Vector<LayerStackingNode*>* posZOrderList = m_root.posZOrderList(); |
127 if (posZOrderList) { | 127 if (posZOrderList) { |
128 m_index = posZOrderList->size() - 1; | 128 m_index = posZOrderList->size() - 1; |
129 return; | 129 return; |
130 } | 130 } |
131 | 131 |
132 m_remainingChildren &= ~PositiveZOrderChildren; | 132 m_remainingChildren &= ~PositiveZOrderChildren; |
133 } | 133 } |
134 | 134 |
135 // No more list to visit. | 135 // No more list to visit. |
136 ASSERT(!m_remainingChildren); | 136 ASSERT(!m_remainingChildren); |
137 m_index = -1; | 137 m_index = -1; |
138 } | 138 } |
139 | 139 |
140 } // namespace blink | 140 } // namespace blink |
OLD | NEW |