OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/trees/occlusion_tracker.h" | 5 #include "cc/trees/occlusion_tracker.h" |
6 | 6 |
7 #include "base/time/time.h" | 7 #include "base/time/time.h" |
8 #include "cc/layers/layer_iterator.h" | 8 #include "cc/layers/layer_iterator.h" |
9 #include "cc/layers/solid_color_layer_impl.h" | 9 #include "cc/layers/solid_color_layer_impl.h" |
10 #include "cc/test/fake_layer_tree_host_impl_client.h" | 10 #include "cc/test/fake_layer_tree_host_impl_client.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 opaque_layer->SetDrawsContent(true); | 84 opaque_layer->SetDrawsContent(true); |
85 opaque_layer->SetBounds(viewport_rect.size()); | 85 opaque_layer->SetBounds(viewport_rect.size()); |
86 opaque_layer->SetContentBounds(viewport_rect.size()); | 86 opaque_layer->SetContentBounds(viewport_rect.size()); |
87 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); | 87 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); |
88 | 88 |
89 active_tree()->UpdateDrawProperties(); | 89 active_tree()->UpdateDrawProperties(); |
90 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); | 90 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); |
91 ASSERT_EQ(1u, rsll.size()); | 91 ASSERT_EQ(1u, rsll.size()); |
92 EXPECT_EQ(1u, rsll[0]->render_surface()->layer_list().size()); | 92 EXPECT_EQ(1u, rsll[0]->render_surface()->layer_list().size()); |
93 | 93 |
94 typedef LayerIterator<LayerImpl, | 94 LayerIterator<LayerImpl> begin = LayerIterator<LayerImpl>::Begin(&rsll); |
95 LayerImpl::LayerListType, | 95 LayerIterator<LayerImpl> end = LayerIterator<LayerImpl>::End(&rsll); |
96 LayerImpl::RenderSurfaceType, | |
97 LayerIteratorActions::FrontToBack> IteratorType; | |
98 IteratorType begin = IteratorType::Begin(&rsll); | |
99 IteratorType end = IteratorType::End(&rsll); | |
100 | 96 |
101 LayerIteratorPosition<LayerImpl> pos = begin; | 97 LayerIteratorPosition<LayerImpl> pos = begin; |
102 | 98 |
103 // The opaque_layer adds occlusion over the whole viewport. | 99 // The opaque_layer adds occlusion over the whole viewport. |
104 tracker.EnterLayer(pos); | 100 tracker.EnterLayer(pos); |
105 tracker.LeaveLayer(pos); | 101 tracker.LeaveLayer(pos); |
106 | 102 |
107 gfx::Transform transform_to_target; | 103 gfx::Transform transform_to_target; |
108 transform_to_target.Translate(0, 96); | 104 transform_to_target.Translate(0, 96); |
109 bool impl_draw_transform_is_unknown = false; | 105 bool impl_draw_transform_is_unknown = false; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 opaque_layer->SetPosition(gfx::Point(i, i)); | 159 opaque_layer->SetPosition(gfx::Point(i, i)); |
164 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); | 160 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); |
165 } | 161 } |
166 | 162 |
167 active_tree()->UpdateDrawProperties(); | 163 active_tree()->UpdateDrawProperties(); |
168 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); | 164 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); |
169 ASSERT_EQ(1u, rsll.size()); | 165 ASSERT_EQ(1u, rsll.size()); |
170 EXPECT_EQ(static_cast<size_t>(kNumOpaqueLayers), | 166 EXPECT_EQ(static_cast<size_t>(kNumOpaqueLayers), |
171 rsll[0]->render_surface()->layer_list().size()); | 167 rsll[0]->render_surface()->layer_list().size()); |
172 | 168 |
173 typedef LayerIterator<LayerImpl, | 169 LayerIterator<LayerImpl> begin = LayerIterator<LayerImpl>::Begin(&rsll); |
174 LayerImpl::LayerListType, | 170 LayerIterator<LayerImpl> end = LayerIterator<LayerImpl>::End(&rsll); |
175 LayerImpl::RenderSurfaceType, | |
176 LayerIteratorActions::FrontToBack> IteratorType; | |
177 IteratorType begin = IteratorType::Begin(&rsll); | |
178 IteratorType end = IteratorType::End(&rsll); | |
179 | 171 |
180 // The opaque_layers add occlusion. | 172 // The opaque_layers add occlusion. |
181 for (int i = 0; i < kNumOpaqueLayers - 1; ++i) { | 173 for (int i = 0; i < kNumOpaqueLayers - 1; ++i) { |
182 LayerIteratorPosition<LayerImpl> pos = begin; | 174 LayerIteratorPosition<LayerImpl> pos = begin; |
183 tracker.EnterLayer(pos); | 175 tracker.EnterLayer(pos); |
184 tracker.LeaveLayer(pos); | 176 tracker.LeaveLayer(pos); |
185 ++begin; | 177 ++begin; |
186 } | 178 } |
187 LayerIteratorPosition<LayerImpl> pos = begin; | 179 LayerIteratorPosition<LayerImpl> pos = begin; |
188 tracker.EnterLayer(pos); | 180 tracker.EnterLayer(pos); |
(...skipping 23 matching lines...) Expand all Loading... |
212 EXPECT_EQ(active_tree()->root_layer(), next.current_layer); | 204 EXPECT_EQ(active_tree()->root_layer(), next.current_layer); |
213 | 205 |
214 ++begin; | 206 ++begin; |
215 EXPECT_EQ(end, begin); | 207 EXPECT_EQ(end, begin); |
216 | 208 |
217 PrintResults(); | 209 PrintResults(); |
218 } | 210 } |
219 | 211 |
220 } // namespace | 212 } // namespace |
221 } // namespace cc | 213 } // namespace cc |
OLD | NEW |