OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "cc/output/gl_renderer.h" | 38 #include "cc/output/gl_renderer.h" |
39 #include "cc/output/latency_info_swap_promise.h" | 39 #include "cc/output/latency_info_swap_promise.h" |
40 #include "cc/quads/render_pass_draw_quad.h" | 40 #include "cc/quads/render_pass_draw_quad.h" |
41 #include "cc/quads/solid_color_draw_quad.h" | 41 #include "cc/quads/solid_color_draw_quad.h" |
42 #include "cc/quads/texture_draw_quad.h" | 42 #include "cc/quads/texture_draw_quad.h" |
43 #include "cc/quads/tile_draw_quad.h" | 43 #include "cc/quads/tile_draw_quad.h" |
44 #include "cc/test/animation_test_common.h" | 44 #include "cc/test/animation_test_common.h" |
45 #include "cc/test/begin_frame_args_test.h" | 45 #include "cc/test/begin_frame_args_test.h" |
46 #include "cc/test/fake_display_list_raster_source.h" | 46 #include "cc/test/fake_display_list_raster_source.h" |
47 #include "cc/test/fake_layer_tree_host_impl.h" | 47 #include "cc/test/fake_layer_tree_host_impl.h" |
| 48 #include "cc/test/fake_mask_layer_impl.h" |
48 #include "cc/test/fake_output_surface.h" | 49 #include "cc/test/fake_output_surface.h" |
49 #include "cc/test/fake_output_surface_client.h" | 50 #include "cc/test/fake_output_surface_client.h" |
50 #include "cc/test/fake_picture_layer_impl.h" | 51 #include "cc/test/fake_picture_layer_impl.h" |
51 #include "cc/test/fake_video_frame_provider.h" | 52 #include "cc/test/fake_video_frame_provider.h" |
52 #include "cc/test/geometry_test_utils.h" | 53 #include "cc/test/geometry_test_utils.h" |
53 #include "cc/test/gpu_rasterization_enabled_settings.h" | 54 #include "cc/test/gpu_rasterization_enabled_settings.h" |
54 #include "cc/test/layer_test_common.h" | 55 #include "cc/test/layer_test_common.h" |
55 #include "cc/test/layer_tree_test.h" | 56 #include "cc/test/layer_tree_test.h" |
56 #include "cc/test/test_gpu_memory_buffer_manager.h" | 57 #include "cc/test/test_gpu_memory_buffer_manager.h" |
57 #include "cc/test/test_shared_bitmap_manager.h" | 58 #include "cc/test/test_shared_bitmap_manager.h" |
(...skipping 4296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4354 host_impl_->ScrollEnd(); | 4355 host_impl_->ScrollEnd(); |
4355 DrawOneFrame(); | 4356 DrawOneFrame(); |
4356 | 4357 |
4357 // Make sure all the layers are drawn with the page scale delta applied, i.e., | 4358 // Make sure all the layers are drawn with the page scale delta applied, i.e., |
4358 // the page scale delta on the root layer is applied hierarchically. | 4359 // the page scale delta on the root layer is applied hierarchically. |
4359 LayerTreeHostImpl::FrameData frame; | 4360 LayerTreeHostImpl::FrameData frame; |
4360 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 4361 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
4361 host_impl_->DrawLayers(&frame); | 4362 host_impl_->DrawLayers(&frame); |
4362 host_impl_->DidDrawAllLayers(frame); | 4363 host_impl_->DidDrawAllLayers(frame); |
4363 | 4364 |
4364 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(0, 0)); | 4365 EXPECT_EQ(1.f, root->DrawTransform().matrix().getDouble(0, 0)); |
4365 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(1, 1)); | 4366 EXPECT_EQ(1.f, root->DrawTransform().matrix().getDouble(1, 1)); |
4366 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(0, 0)); | 4367 EXPECT_EQ(new_page_scale, scroll->DrawTransform().matrix().getDouble(0, 0)); |
4367 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(1, 1)); | 4368 EXPECT_EQ(new_page_scale, scroll->DrawTransform().matrix().getDouble(1, 1)); |
4368 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(0, 0)); | 4369 EXPECT_EQ(new_page_scale, child->DrawTransform().matrix().getDouble(0, 0)); |
4369 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(1, 1)); | 4370 EXPECT_EQ(new_page_scale, child->DrawTransform().matrix().getDouble(1, 1)); |
4370 EXPECT_EQ(new_page_scale, | 4371 EXPECT_EQ(new_page_scale, |
4371 grand_child->draw_transform().matrix().getDouble(0, 0)); | 4372 grand_child->DrawTransform().matrix().getDouble(0, 0)); |
4372 EXPECT_EQ(new_page_scale, | 4373 EXPECT_EQ(new_page_scale, |
4373 grand_child->draw_transform().matrix().getDouble(1, 1)); | 4374 grand_child->DrawTransform().matrix().getDouble(1, 1)); |
4374 } | 4375 } |
4375 | 4376 |
4376 TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) { | 4377 TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) { |
4377 SetupScrollAndContentsLayers(gfx::Size(30, 30)); | 4378 SetupScrollAndContentsLayers(gfx::Size(30, 30)); |
4378 | 4379 |
4379 LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer(); | 4380 LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer(); |
4380 LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); | 4381 LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
4381 | 4382 |
4382 // Make the outer scroll layer scrollable. | 4383 // Make the outer scroll layer scrollable. |
4383 outer_scroll->SetBounds(gfx::Size(50, 50)); | 4384 outer_scroll->SetBounds(gfx::Size(50, 50)); |
(...skipping 2221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6605 } | 6606 } |
6606 | 6607 |
6607 // TODO(reveman): Remove this test and the ability to prevent on demand raster | 6608 // TODO(reveman): Remove this test and the ability to prevent on demand raster |
6608 // when delegating renderer supports PictureDrawQuads. crbug.com/342121 | 6609 // when delegating renderer supports PictureDrawQuads. crbug.com/342121 |
6609 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, PreventRasterizeOnDemand) { | 6610 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, PreventRasterizeOnDemand) { |
6610 LayerTreeSettings settings = DefaultSettings(); | 6611 LayerTreeSettings settings = DefaultSettings(); |
6611 CreateHostImpl(settings, CreateOutputSurface()); | 6612 CreateHostImpl(settings, CreateOutputSurface()); |
6612 EXPECT_FALSE(host_impl_->GetRendererCapabilities().allow_rasterize_on_demand); | 6613 EXPECT_FALSE(host_impl_->GetRendererCapabilities().allow_rasterize_on_demand); |
6613 } | 6614 } |
6614 | 6615 |
6615 class FakeMaskLayerImpl : public LayerImpl { | |
6616 public: | |
6617 static scoped_ptr<FakeMaskLayerImpl> Create(LayerTreeImpl* tree_impl, | |
6618 int id) { | |
6619 return make_scoped_ptr(new FakeMaskLayerImpl(tree_impl, id)); | |
6620 } | |
6621 | |
6622 void GetContentsResourceId(ResourceId* resource_id, | |
6623 gfx::Size* resource_size) const override { | |
6624 *resource_id = 0; | |
6625 } | |
6626 | |
6627 private: | |
6628 FakeMaskLayerImpl(LayerTreeImpl* tree_impl, int id) | |
6629 : LayerImpl(tree_impl, id) {} | |
6630 }; | |
6631 | |
6632 class GLRendererWithSetupQuadForAntialiasing : public GLRenderer { | 6616 class GLRendererWithSetupQuadForAntialiasing : public GLRenderer { |
6633 public: | 6617 public: |
6634 using GLRenderer::ShouldAntialiasQuad; | 6618 using GLRenderer::ShouldAntialiasQuad; |
6635 }; | 6619 }; |
6636 | 6620 |
6637 TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) { | 6621 TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) { |
6638 // Due to precision issues (especially on Android), sometimes far | 6622 // Due to precision issues (especially on Android), sometimes far |
6639 // away quads can end up thinking they need AA. | 6623 // away quads can end up thinking they need AA. |
6640 float device_scale_factor = 4.f / 3.f; | 6624 float device_scale_factor = 4.f / 3.f; |
6641 gfx::Size root_size(2000, 1000); | 6625 gfx::Size root_size(2000, 1000); |
(...skipping 2544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9186 host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); | 9170 host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); |
9187 DrawFrame(); | 9171 DrawFrame(); |
9188 in_subtree_of_page_scale_layer = host_impl_->active_tree()->LayerById(100); | 9172 in_subtree_of_page_scale_layer = host_impl_->active_tree()->LayerById(100); |
9189 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( | 9173 node = host_impl_->active_tree()->property_trees()->transform_tree.Node( |
9190 in_subtree_of_page_scale_layer->transform_tree_index()); | 9174 in_subtree_of_page_scale_layer->transform_tree_index()); |
9191 EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(2.f, 2.f)); | 9175 EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(2.f, 2.f)); |
9192 } | 9176 } |
9193 | 9177 |
9194 } // namespace | 9178 } // namespace |
9195 } // namespace cc | 9179 } // namespace cc |
OLD | NEW |