| 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.h" | 5 #include "cc/trees/layer_tree_host.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #include "cc/quads/io_surface_draw_quad.h" | 31 #include "cc/quads/io_surface_draw_quad.h" |
| 32 #include "cc/quads/render_pass_draw_quad.h" | 32 #include "cc/quads/render_pass_draw_quad.h" |
| 33 #include "cc/quads/tile_draw_quad.h" | 33 #include "cc/quads/tile_draw_quad.h" |
| 34 #include "cc/test/fake_content_layer_client.h" | 34 #include "cc/test/fake_content_layer_client.h" |
| 35 #include "cc/test/fake_display_list_recording_source.h" | 35 #include "cc/test/fake_display_list_recording_source.h" |
| 36 #include "cc/test/fake_layer_tree_host_client.h" | 36 #include "cc/test/fake_layer_tree_host_client.h" |
| 37 #include "cc/test/fake_output_surface.h" | 37 #include "cc/test/fake_output_surface.h" |
| 38 #include "cc/test/fake_painted_scrollbar_layer.h" | 38 #include "cc/test/fake_painted_scrollbar_layer.h" |
| 39 #include "cc/test/fake_picture_layer.h" | 39 #include "cc/test/fake_picture_layer.h" |
| 40 #include "cc/test/fake_picture_layer_impl.h" | 40 #include "cc/test/fake_picture_layer_impl.h" |
| 41 #include "cc/test/fake_picture_pile.h" | |
| 42 #include "cc/test/fake_proxy.h" | 41 #include "cc/test/fake_proxy.h" |
| 43 #include "cc/test/fake_scoped_ui_resource.h" | 42 #include "cc/test/fake_scoped_ui_resource.h" |
| 44 #include "cc/test/fake_video_frame_provider.h" | 43 #include "cc/test/fake_video_frame_provider.h" |
| 45 #include "cc/test/geometry_test_utils.h" | 44 #include "cc/test/geometry_test_utils.h" |
| 46 #include "cc/test/layer_tree_test.h" | 45 #include "cc/test/layer_tree_test.h" |
| 47 #include "cc/test/test_shared_bitmap_manager.h" | 46 #include "cc/test/test_shared_bitmap_manager.h" |
| 48 #include "cc/test/test_web_graphics_context_3d.h" | 47 #include "cc/test/test_web_graphics_context_3d.h" |
| 49 #include "cc/trees/layer_tree_host_impl.h" | 48 #include "cc/trees/layer_tree_host_impl.h" |
| 50 #include "cc/trees/layer_tree_impl.h" | 49 #include "cc/trees/layer_tree_impl.h" |
| 51 #include "cc/trees/single_thread_proxy.h" | 50 #include "cc/trees/single_thread_proxy.h" |
| (...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 | 1142 |
| 1144 // Tests that if a layer is not drawn because of some reason in the parent then | 1143 // Tests that if a layer is not drawn because of some reason in the parent then |
| 1145 // its damage is preserved until the next time it is drawn. | 1144 // its damage is preserved until the next time it is drawn. |
| 1146 class LayerTreeHostTestDamageWithScale : public LayerTreeHostTest { | 1145 class LayerTreeHostTestDamageWithScale : public LayerTreeHostTest { |
| 1147 public: | 1146 public: |
| 1148 LayerTreeHostTestDamageWithScale() {} | 1147 LayerTreeHostTestDamageWithScale() {} |
| 1149 | 1148 |
| 1150 void SetupTree() override { | 1149 void SetupTree() override { |
| 1151 client_.set_fill_with_nonsolid_color(true); | 1150 client_.set_fill_with_nonsolid_color(true); |
| 1152 | 1151 |
| 1153 scoped_ptr<FakePicturePile> pile( | 1152 scoped_ptr<FakeDisplayListRecordingSource> recording( |
| 1154 new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 1153 new FakeDisplayListRecordingSource( |
| 1155 LayerTreeSettings().default_tile_grid_size)); | 1154 LayerTreeSettings().default_tile_grid_size)); |
| 1156 root_layer_ = FakePictureLayer::CreateWithRecordingSource( | 1155 root_layer_ = FakePictureLayer::CreateWithRecordingSource( |
| 1157 layer_settings(), &client_, pile.Pass()); | 1156 layer_settings(), &client_, recording.Pass()); |
| 1158 root_layer_->SetBounds(gfx::Size(50, 50)); | 1157 root_layer_->SetBounds(gfx::Size(50, 50)); |
| 1159 | 1158 |
| 1160 pile.reset(new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 1159 recording.reset(new FakeDisplayListRecordingSource( |
| 1161 LayerTreeSettings().default_tile_grid_size)); | 1160 LayerTreeSettings().default_tile_grid_size)); |
| 1162 child_layer_ = FakePictureLayer::CreateWithRecordingSource( | 1161 child_layer_ = FakePictureLayer::CreateWithRecordingSource( |
| 1163 layer_settings(), &client_, pile.Pass()); | 1162 layer_settings(), &client_, recording.Pass()); |
| 1164 child_layer_->SetBounds(gfx::Size(25, 25)); | 1163 child_layer_->SetBounds(gfx::Size(25, 25)); |
| 1165 child_layer_->SetIsDrawable(true); | 1164 child_layer_->SetIsDrawable(true); |
| 1166 child_layer_->SetContentsOpaque(true); | 1165 child_layer_->SetContentsOpaque(true); |
| 1167 root_layer_->AddChild(child_layer_); | 1166 root_layer_->AddChild(child_layer_); |
| 1168 | 1167 |
| 1169 layer_tree_host()->SetRootLayer(root_layer_); | 1168 layer_tree_host()->SetRootLayer(root_layer_); |
| 1170 LayerTreeHostTest::SetupTree(); | 1169 LayerTreeHostTest::SetupTree(); |
| 1171 } | 1170 } |
| 1172 | 1171 |
| 1173 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { | 1172 void DidActivateTreeOnThread(LayerTreeHostImpl* host_impl) override { |
| (...skipping 3680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4854 | 4853 |
| 4855 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 4854 scoped_refptr<Layer> root = Layer::Create(layer_settings()); |
| 4856 root->SetBounds(gfx::Size(500, 500)); | 4855 root->SetBounds(gfx::Size(500, 500)); |
| 4857 | 4856 |
| 4858 scoped_refptr<Layer> pinch = Layer::Create(layer_settings()); | 4857 scoped_refptr<Layer> pinch = Layer::Create(layer_settings()); |
| 4859 pinch->SetBounds(gfx::Size(500, 500)); | 4858 pinch->SetBounds(gfx::Size(500, 500)); |
| 4860 pinch->SetScrollClipLayerId(root->id()); | 4859 pinch->SetScrollClipLayerId(root->id()); |
| 4861 pinch->SetIsContainerForFixedPositionLayers(true); | 4860 pinch->SetIsContainerForFixedPositionLayers(true); |
| 4862 root->AddChild(pinch); | 4861 root->AddChild(pinch); |
| 4863 | 4862 |
| 4864 scoped_ptr<FakePicturePile> pile( | 4863 scoped_ptr<FakeDisplayListRecordingSource> recording( |
| 4865 new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 4864 new FakeDisplayListRecordingSource( |
| 4866 LayerTreeSettings().default_tile_grid_size)); | 4865 LayerTreeSettings().default_tile_grid_size)); |
| 4867 pile->SetPlaybackAllowedEvent(&playback_allowed_event_); | 4866 recording->SetPlaybackAllowedEvent(&playback_allowed_event_); |
| 4868 scoped_refptr<FakePictureLayer> layer = | 4867 scoped_refptr<FakePictureLayer> layer = |
| 4869 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, | 4868 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, |
| 4870 pile.Pass()); | 4869 recording.Pass()); |
| 4871 layer->SetBounds(gfx::Size(500, 500)); | 4870 layer->SetBounds(gfx::Size(500, 500)); |
| 4872 layer->SetContentsOpaque(true); | 4871 layer->SetContentsOpaque(true); |
| 4873 // Avoid LCD text on the layer so we don't cause extra commits when we | 4872 // Avoid LCD text on the layer so we don't cause extra commits when we |
| 4874 // pinch. | 4873 // pinch. |
| 4875 pinch->AddChild(layer); | 4874 pinch->AddChild(layer); |
| 4876 | 4875 |
| 4877 layer_tree_host()->RegisterViewportLayers(NULL, root, pinch, pinch); | 4876 layer_tree_host()->RegisterViewportLayers(NULL, root, pinch, pinch); |
| 4878 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); | 4877 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); |
| 4879 layer_tree_host()->SetRootLayer(root); | 4878 layer_tree_host()->SetRootLayer(root); |
| 4880 LayerTreeHostTest::SetupTree(); | 4879 LayerTreeHostTest::SetupTree(); |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5058 void InitializeSettings(LayerTreeSettings* settings) override { | 5057 void InitializeSettings(LayerTreeSettings* settings) override { |
| 5059 settings->gpu_rasterization_forced = true; | 5058 settings->gpu_rasterization_forced = true; |
| 5060 } | 5059 } |
| 5061 | 5060 |
| 5062 void SetupTree() override { | 5061 void SetupTree() override { |
| 5063 client_.set_fill_with_nonsolid_color(true); | 5062 client_.set_fill_with_nonsolid_color(true); |
| 5064 | 5063 |
| 5065 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 5064 scoped_refptr<Layer> root = Layer::Create(layer_settings()); |
| 5066 root->SetBounds(gfx::Size(500, 500)); | 5065 root->SetBounds(gfx::Size(500, 500)); |
| 5067 | 5066 |
| 5068 scoped_ptr<FakePicturePile> pile( | 5067 scoped_ptr<FakeDisplayListRecordingSource> recording( |
| 5069 new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 5068 new FakeDisplayListRecordingSource( |
| 5070 LayerTreeSettings().default_tile_grid_size)); | 5069 LayerTreeSettings().default_tile_grid_size)); |
| 5071 scoped_refptr<FakePictureLayer> layer = | 5070 scoped_refptr<FakePictureLayer> layer = |
| 5072 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, | 5071 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, |
| 5073 pile.Pass()); | 5072 recording.Pass()); |
| 5074 layer->SetBounds(gfx::Size(500, 500)); | 5073 layer->SetBounds(gfx::Size(500, 500)); |
| 5075 layer->SetContentsOpaque(true); | 5074 layer->SetContentsOpaque(true); |
| 5076 root->AddChild(layer); | 5075 root->AddChild(layer); |
| 5077 | 5076 |
| 5078 layer_tree_host()->SetRootLayer(root); | 5077 layer_tree_host()->SetRootLayer(root); |
| 5079 LayerTreeHostTest::SetupTree(); | 5078 LayerTreeHostTest::SetupTree(); |
| 5080 } | 5079 } |
| 5081 | 5080 |
| 5082 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 5081 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 5083 | 5082 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 5100 GpuRasterizationRasterizesBorderTiles() : viewport_size_(1024, 2048) {} | 5099 GpuRasterizationRasterizesBorderTiles() : viewport_size_(1024, 2048) {} |
| 5101 | 5100 |
| 5102 void InitializeSettings(LayerTreeSettings* settings) override { | 5101 void InitializeSettings(LayerTreeSettings* settings) override { |
| 5103 settings->gpu_rasterization_enabled = true; | 5102 settings->gpu_rasterization_enabled = true; |
| 5104 settings->gpu_rasterization_forced = true; | 5103 settings->gpu_rasterization_forced = true; |
| 5105 } | 5104 } |
| 5106 | 5105 |
| 5107 void SetupTree() override { | 5106 void SetupTree() override { |
| 5108 client_.set_fill_with_nonsolid_color(true); | 5107 client_.set_fill_with_nonsolid_color(true); |
| 5109 | 5108 |
| 5110 scoped_ptr<FakePicturePile> pile( | 5109 scoped_ptr<FakeDisplayListRecordingSource> recording( |
| 5111 new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 5110 new FakeDisplayListRecordingSource( |
| 5112 LayerTreeSettings().default_tile_grid_size)); | 5111 LayerTreeSettings().default_tile_grid_size)); |
| 5113 scoped_refptr<FakePictureLayer> root = | 5112 scoped_refptr<FakePictureLayer> root = |
| 5114 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, | 5113 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, |
| 5115 pile.Pass()); | 5114 recording.Pass()); |
| 5116 root->SetBounds(gfx::Size(10000, 10000)); | 5115 root->SetBounds(gfx::Size(10000, 10000)); |
| 5117 root->SetContentsOpaque(true); | 5116 root->SetContentsOpaque(true); |
| 5118 | 5117 |
| 5119 layer_tree_host()->SetRootLayer(root); | 5118 layer_tree_host()->SetRootLayer(root); |
| 5120 LayerTreeHostTest::SetupTree(); | 5119 LayerTreeHostTest::SetupTree(); |
| 5121 layer_tree_host()->SetViewportSize(viewport_size_); | 5120 layer_tree_host()->SetViewportSize(viewport_size_); |
| 5122 } | 5121 } |
| 5123 | 5122 |
| 5124 void BeginTest() override { PostSetNeedsCommitToMainThread(); } | 5123 void BeginTest() override { PostSetNeedsCommitToMainThread(); } |
| 5125 | 5124 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 5153 | 5152 |
| 5154 scoped_refptr<Layer> root = Layer::Create(layer_settings()); | 5153 scoped_refptr<Layer> root = Layer::Create(layer_settings()); |
| 5155 root->SetBounds(gfx::Size(500, 500)); | 5154 root->SetBounds(gfx::Size(500, 500)); |
| 5156 | 5155 |
| 5157 scoped_refptr<Layer> pinch = Layer::Create(layer_settings()); | 5156 scoped_refptr<Layer> pinch = Layer::Create(layer_settings()); |
| 5158 pinch->SetBounds(gfx::Size(500, 500)); | 5157 pinch->SetBounds(gfx::Size(500, 500)); |
| 5159 pinch->SetScrollClipLayerId(root->id()); | 5158 pinch->SetScrollClipLayerId(root->id()); |
| 5160 pinch->SetIsContainerForFixedPositionLayers(true); | 5159 pinch->SetIsContainerForFixedPositionLayers(true); |
| 5161 root->AddChild(pinch); | 5160 root->AddChild(pinch); |
| 5162 | 5161 |
| 5163 scoped_ptr<FakePicturePile> pile( | 5162 scoped_ptr<FakeDisplayListRecordingSource> recording( |
| 5164 new FakePicturePile(LayerTreeSettings().minimum_contents_scale, | 5163 new FakeDisplayListRecordingSource( |
| 5165 LayerTreeSettings().default_tile_grid_size)); | 5164 LayerTreeSettings().default_tile_grid_size)); |
| 5166 pile->SetPlaybackAllowedEvent(&playback_allowed_event_); | 5165 recording->SetPlaybackAllowedEvent(&playback_allowed_event_); |
| 5167 scoped_refptr<FakePictureLayer> layer = | 5166 scoped_refptr<FakePictureLayer> layer = |
| 5168 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, | 5167 FakePictureLayer::CreateWithRecordingSource(layer_settings(), &client_, |
| 5169 pile.Pass()); | 5168 recording.Pass()); |
| 5170 layer->SetBounds(gfx::Size(500, 500)); | 5169 layer->SetBounds(gfx::Size(500, 500)); |
| 5171 layer->SetContentsOpaque(true); | 5170 layer->SetContentsOpaque(true); |
| 5172 // Avoid LCD text on the layer so we don't cause extra commits when we | 5171 // Avoid LCD text on the layer so we don't cause extra commits when we |
| 5173 // pinch. | 5172 // pinch. |
| 5174 pinch->AddChild(layer); | 5173 pinch->AddChild(layer); |
| 5175 | 5174 |
| 5176 layer_tree_host()->RegisterViewportLayers(NULL, root, pinch, pinch); | 5175 layer_tree_host()->RegisterViewportLayers(NULL, root, pinch, pinch); |
| 5177 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); | 5176 layer_tree_host()->SetPageScaleFactorAndLimits(1.f, 1.f, 4.f); |
| 5178 layer_tree_host()->SetRootLayer(root); | 5177 layer_tree_host()->SetRootLayer(root); |
| 5179 LayerTreeHostTest::SetupTree(); | 5178 LayerTreeHostTest::SetupTree(); |
| (...skipping 1001 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6181 ScrollAndScaleSet scale_info_; | 6180 ScrollAndScaleSet scale_info_; |
| 6182 ScrollAndScaleSet no_op_info_; | 6181 ScrollAndScaleSet no_op_info_; |
| 6183 bool requested_update_layers_; | 6182 bool requested_update_layers_; |
| 6184 int commit_count_; | 6183 int commit_count_; |
| 6185 }; | 6184 }; |
| 6186 | 6185 |
| 6187 MULTI_THREAD_TEST_F(LayerTreeHostScrollingAndScalingUpdatesLayers); | 6186 MULTI_THREAD_TEST_F(LayerTreeHostScrollingAndScalingUpdatesLayers); |
| 6188 | 6187 |
| 6189 } // namespace | 6188 } // namespace |
| 6190 } // namespace cc | 6189 } // namespace cc |
| OLD | NEW |