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 LayerIterator<LayerImpl> begin = LayerIterator<LayerImpl>::Begin(&rsll); | 94 typedef LayerIterator<LayerImpl, |
95 LayerIterator<LayerImpl> end = LayerIterator<LayerImpl>::End(&rsll); | 95 LayerImpl::LayerListType, |
| 96 LayerImpl::RenderSurfaceType, |
| 97 LayerIteratorActions::FrontToBack> IteratorType; |
| 98 IteratorType begin = IteratorType::Begin(&rsll); |
| 99 IteratorType end = IteratorType::End(&rsll); |
96 | 100 |
97 LayerIteratorPosition<LayerImpl> pos = begin; | 101 LayerIteratorPosition<LayerImpl> pos = begin; |
98 | 102 |
99 // The opaque_layer adds occlusion over the whole viewport. | 103 // The opaque_layer adds occlusion over the whole viewport. |
100 tracker.EnterLayer(pos); | 104 tracker.EnterLayer(pos); |
101 tracker.LeaveLayer(pos); | 105 tracker.LeaveLayer(pos); |
102 | 106 |
103 gfx::Transform transform_to_target; | 107 gfx::Transform transform_to_target; |
104 transform_to_target.Translate(0, 96); | 108 transform_to_target.Translate(0, 96); |
105 bool impl_draw_transform_is_unknown = false; | 109 bool impl_draw_transform_is_unknown = false; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 opaque_layer->SetPosition(gfx::Point(i, i)); | 163 opaque_layer->SetPosition(gfx::Point(i, i)); |
160 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); | 164 active_tree()->root_layer()->AddChild(opaque_layer.PassAs<LayerImpl>()); |
161 } | 165 } |
162 | 166 |
163 active_tree()->UpdateDrawProperties(); | 167 active_tree()->UpdateDrawProperties(); |
164 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); | 168 const LayerImplList& rsll = active_tree()->RenderSurfaceLayerList(); |
165 ASSERT_EQ(1u, rsll.size()); | 169 ASSERT_EQ(1u, rsll.size()); |
166 EXPECT_EQ(static_cast<size_t>(kNumOpaqueLayers), | 170 EXPECT_EQ(static_cast<size_t>(kNumOpaqueLayers), |
167 rsll[0]->render_surface()->layer_list().size()); | 171 rsll[0]->render_surface()->layer_list().size()); |
168 | 172 |
169 LayerIterator<LayerImpl> begin = LayerIterator<LayerImpl>::Begin(&rsll); | 173 typedef LayerIterator<LayerImpl, |
170 LayerIterator<LayerImpl> end = LayerIterator<LayerImpl>::End(&rsll); | 174 LayerImpl::LayerListType, |
| 175 LayerImpl::RenderSurfaceType, |
| 176 LayerIteratorActions::FrontToBack> IteratorType; |
| 177 IteratorType begin = IteratorType::Begin(&rsll); |
| 178 IteratorType end = IteratorType::End(&rsll); |
171 | 179 |
172 // The opaque_layers add occlusion. | 180 // The opaque_layers add occlusion. |
173 for (int i = 0; i < kNumOpaqueLayers - 1; ++i) { | 181 for (int i = 0; i < kNumOpaqueLayers - 1; ++i) { |
174 LayerIteratorPosition<LayerImpl> pos = begin; | 182 LayerIteratorPosition<LayerImpl> pos = begin; |
175 tracker.EnterLayer(pos); | 183 tracker.EnterLayer(pos); |
176 tracker.LeaveLayer(pos); | 184 tracker.LeaveLayer(pos); |
177 ++begin; | 185 ++begin; |
178 } | 186 } |
179 LayerIteratorPosition<LayerImpl> pos = begin; | 187 LayerIteratorPosition<LayerImpl> pos = begin; |
180 tracker.EnterLayer(pos); | 188 tracker.EnterLayer(pos); |
(...skipping 23 matching lines...) Expand all Loading... |
204 EXPECT_EQ(active_tree()->root_layer(), next.current_layer); | 212 EXPECT_EQ(active_tree()->root_layer(), next.current_layer); |
205 | 213 |
206 ++begin; | 214 ++begin; |
207 EXPECT_EQ(end, begin); | 215 EXPECT_EQ(end, begin); |
208 | 216 |
209 PrintResults(); | 217 PrintResults(); |
210 } | 218 } |
211 | 219 |
212 } // namespace | 220 } // namespace |
213 } // namespace cc | 221 } // namespace cc |
OLD | NEW |