| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include "cc/layers/layer.h" | 7 #include "cc/layers/layer.h" |
| 8 #include "cc/layers/picture_layer.h" | 8 #include "cc/layers/picture_layer.h" |
| 9 #include "cc/test/fake_content_layer_client.h" | 9 #include "cc/test/fake_content_layer_client.h" |
| 10 #include "cc/test/layer_test_common.h" |
| 10 #include "cc/test/layer_tree_test.h" | 11 #include "cc/test/layer_tree_test.h" |
| 11 #include "cc/trees/layer_tree_impl.h" | 12 #include "cc/trees/layer_tree_impl.h" |
| 12 | 13 |
| 13 namespace cc { | 14 namespace cc { |
| 14 namespace { | 15 namespace { |
| 15 | 16 |
| 16 #define EXPECT_OCCLUSION_EQ(expected, actual) \ | 17 #define EXPECT_OCCLUSION_EQ(expected, actual) \ |
| 17 EXPECT_TRUE(expected.IsEqual(actual)) \ | 18 EXPECT_TRUE(expected.IsEqual(actual)) \ |
| 18 << " Expected: " << expected.ToString() << std::endl \ | 19 << " Expected: " << expected.ToString() << std::endl \ |
| 19 << " Actual: " << actual.ToString(); | 20 << " Actual: " << actual.ToString(); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 | 100 |
| 100 layer_tree_host()->SetRootLayer(root); | 101 layer_tree_host()->SetRootLayer(root); |
| 101 LayerTreeTest::SetupTree(); | 102 LayerTreeTest::SetupTree(); |
| 102 } | 103 } |
| 103 | 104 |
| 104 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 105 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 105 | 106 |
| 106 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 107 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
| 107 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); | 108 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); |
| 108 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); | 109 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); |
| 109 RenderSurfaceImpl* surface = child->GetRenderSurface(); | 110 RenderSurfaceImpl* surface = GetRenderSurface(child); |
| 110 | 111 |
| 111 // Verify the draw properties are valid. | 112 // Verify the draw properties are valid. |
| 112 EXPECT_TRUE(root->contributes_to_drawn_render_surface()); | 113 EXPECT_TRUE(root->contributes_to_drawn_render_surface()); |
| 113 EXPECT_TRUE(child->contributes_to_drawn_render_surface()); | 114 EXPECT_TRUE(child->contributes_to_drawn_render_surface()); |
| 114 EXPECT_TRUE(child->GetRenderSurface()); | 115 EXPECT_TRUE(GetRenderSurface(child)); |
| 115 EXPECT_EQ(child->GetRenderSurface(), child->render_target()); | 116 EXPECT_EQ(GetRenderSurface(child), child->render_target()); |
| 116 | 117 |
| 117 EXPECT_OCCLUSION_EQ( | 118 EXPECT_OCCLUSION_EQ( |
| 118 Occlusion(surface->draw_transform(), SimpleEnclosedRegion(), | 119 Occlusion(surface->draw_transform(), SimpleEnclosedRegion(), |
| 119 SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))), | 120 SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))), |
| 120 surface->occlusion_in_content_space()); | 121 surface->occlusion_in_content_space()); |
| 121 EndTest(); | 122 EndTest(); |
| 122 } | 123 } |
| 123 | 124 |
| 124 void AfterTest() override {} | 125 void AfterTest() override {} |
| 125 | 126 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 layer_tree_host()->SetRootLayer(root); | 167 layer_tree_host()->SetRootLayer(root); |
| 167 LayerTreeTest::SetupTree(); | 168 LayerTreeTest::SetupTree(); |
| 168 client_.set_bounds(root->bounds()); | 169 client_.set_bounds(root->bounds()); |
| 169 } | 170 } |
| 170 | 171 |
| 171 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 172 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 172 | 173 |
| 173 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 174 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
| 174 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); | 175 LayerImpl* root = impl->active_tree()->root_layer_for_testing(); |
| 175 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); | 176 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); |
| 176 RenderSurfaceImpl* surface = child->GetRenderSurface(); | 177 RenderSurfaceImpl* surface = GetRenderSurface(child); |
| 177 LayerImpl* mask = surface->MaskLayer(); | 178 LayerImpl* mask = surface->MaskLayer(); |
| 178 | 179 |
| 179 // Verify the draw properties are valid. | 180 // Verify the draw properties are valid. |
| 180 EXPECT_TRUE(root->contributes_to_drawn_render_surface()); | 181 EXPECT_TRUE(root->contributes_to_drawn_render_surface()); |
| 181 EXPECT_TRUE(child->contributes_to_drawn_render_surface()); | 182 EXPECT_TRUE(child->contributes_to_drawn_render_surface()); |
| 182 EXPECT_TRUE(child->GetRenderSurface()); | 183 EXPECT_TRUE(GetRenderSurface(child)); |
| 183 EXPECT_EQ(child->GetRenderSurface(), child->render_target()); | 184 EXPECT_EQ(GetRenderSurface(child), child->render_target()); |
| 184 | 185 |
| 185 gfx::Transform transform = surface->draw_transform(); | 186 gfx::Transform transform = surface->draw_transform(); |
| 186 transform.PreconcatTransform(child->DrawTransform()); | 187 transform.PreconcatTransform(child->DrawTransform()); |
| 187 | 188 |
| 188 EXPECT_OCCLUSION_EQ( | 189 EXPECT_OCCLUSION_EQ( |
| 189 Occlusion(transform, SimpleEnclosedRegion(), | 190 Occlusion(transform, SimpleEnclosedRegion(), |
| 190 SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))), | 191 SimpleEnclosedRegion(gfx::Rect(13, 9, 10, 11))), |
| 191 mask->draw_properties().occlusion_in_content_space); | 192 mask->draw_properties().occlusion_in_content_space); |
| 192 EndTest(); | 193 EndTest(); |
| 193 } | 194 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 | 239 |
| 239 layer_tree_host()->SetRootLayer(root); | 240 layer_tree_host()->SetRootLayer(root); |
| 240 LayerTreeTest::SetupTree(); | 241 LayerTreeTest::SetupTree(); |
| 241 client_.set_bounds(root->bounds()); | 242 client_.set_bounds(root->bounds()); |
| 242 } | 243 } |
| 243 | 244 |
| 244 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 245 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 245 | 246 |
| 246 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { | 247 void DrawLayersOnThread(LayerTreeHostImpl* impl) override { |
| 247 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); | 248 LayerImpl* child = impl->active_tree()->LayerById(child_->id()); |
| 248 LayerImpl* mask = child->GetRenderSurface()->MaskLayer(); | 249 LayerImpl* mask = GetRenderSurface(child)->MaskLayer(); |
| 249 | 250 |
| 250 gfx::Transform scale; | 251 gfx::Transform scale; |
| 251 scale.Scale(2, 2); | 252 scale.Scale(2, 2); |
| 252 | 253 |
| 253 EXPECT_OCCLUSION_EQ( | 254 EXPECT_OCCLUSION_EQ( |
| 254 Occlusion(scale, SimpleEnclosedRegion(), | 255 Occlusion(scale, SimpleEnclosedRegion(), |
| 255 SimpleEnclosedRegion(gfx::Rect(13, 15, 10, 11))), | 256 SimpleEnclosedRegion(gfx::Rect(13, 15, 10, 11))), |
| 256 mask->draw_properties().occlusion_in_content_space); | 257 mask->draw_properties().occlusion_in_content_space); |
| 257 EndTest(); | 258 EndTest(); |
| 258 } | 259 } |
| 259 | 260 |
| 260 void AfterTest() override {} | 261 void AfterTest() override {} |
| 261 | 262 |
| 262 private: | 263 private: |
| 263 FakeContentLayerClient client_; | 264 FakeContentLayerClient client_; |
| 264 scoped_refptr<Layer> child_; | 265 scoped_refptr<Layer> child_; |
| 265 }; | 266 }; |
| 266 | 267 |
| 267 SINGLE_AND_MULTI_THREAD_TEST_F( | 268 SINGLE_AND_MULTI_THREAD_TEST_F( |
| 268 LayerTreeHostOcclusionTestDrawPropertiesOnScaledMask); | 269 LayerTreeHostOcclusionTestDrawPropertiesOnScaledMask); |
| 269 | 270 |
| 270 } // namespace | 271 } // namespace |
| 271 } // namespace cc | 272 } // namespace cc |
| OLD | NEW |