| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/layers/picture_image_layer_impl.h" | 5 #include "cc/layers/picture_image_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/layers/append_quads_data.h" | 7 #include "cc/layers/append_quads_data.h" |
| 8 #include "cc/resources/tile_priority.h" | 8 #include "cc/resources/tile_priority.h" |
| 9 #include "cc/test/fake_impl_proxy.h" | 9 #include "cc/test/fake_impl_proxy.h" |
| 10 #include "cc/test/fake_layer_tree_host_impl.h" | 10 #include "cc/test/fake_layer_tree_host_impl.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 FakePictureLayerTilingClient tiling_client_; | 77 FakePictureLayerTilingClient tiling_client_; |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 TEST_F(PictureImageLayerImplTest, CalculateContentsScale) { | 80 TEST_F(PictureImageLayerImplTest, CalculateContentsScale) { |
| 81 scoped_ptr<TestablePictureImageLayerImpl> layer(CreateLayer(1, PENDING_TREE)); | 81 scoped_ptr<TestablePictureImageLayerImpl> layer(CreateLayer(1, PENDING_TREE)); |
| 82 layer->SetDrawsContent(true); | 82 layer->SetDrawsContent(true); |
| 83 | 83 |
| 84 float contents_scale_x; | 84 float contents_scale_x; |
| 85 float contents_scale_y; | 85 float contents_scale_y; |
| 86 gfx::Size content_bounds; | 86 gfx::Size content_bounds; |
| 87 layer->CalculateContentsScale(2.f, 3.f, 4.f, false, | 87 layer->CalculateContentsScale(2.f, |
| 88 &contents_scale_x, &contents_scale_y, | 88 3.f, |
| 89 4.f, |
| 90 1.f, |
| 91 false, |
| 92 &contents_scale_x, |
| 93 &contents_scale_y, |
| 89 &content_bounds); | 94 &content_bounds); |
| 90 EXPECT_FLOAT_EQ(1.f, contents_scale_x); | 95 EXPECT_FLOAT_EQ(1.f, contents_scale_x); |
| 91 EXPECT_FLOAT_EQ(1.f, contents_scale_y); | 96 EXPECT_FLOAT_EQ(1.f, contents_scale_y); |
| 92 EXPECT_EQ(layer->bounds(), content_bounds); | 97 EXPECT_EQ(layer->bounds(), content_bounds); |
| 93 } | 98 } |
| 94 | 99 |
| 95 TEST_F(PictureImageLayerImplTest, AreVisibleResourcesReady) { | 100 TEST_F(PictureImageLayerImplTest, AreVisibleResourcesReady) { |
| 96 scoped_ptr<TestablePictureImageLayerImpl> layer(CreateLayer(1, PENDING_TREE)); | 101 scoped_ptr<TestablePictureImageLayerImpl> layer(CreateLayer(1, PENDING_TREE)); |
| 97 layer->SetBounds(gfx::Size(100, 200)); | 102 layer->SetBounds(gfx::Size(100, 200)); |
| 98 layer->SetDrawsContent(true); | 103 layer->SetDrawsContent(true); |
| 99 | 104 |
| 100 UpdateDrawProperties(); | 105 UpdateDrawProperties(); |
| 101 | 106 |
| 102 float contents_scale_x; | 107 float contents_scale_x; |
| 103 float contents_scale_y; | 108 float contents_scale_y; |
| 104 gfx::Size content_bounds; | 109 gfx::Size content_bounds; |
| 105 layer->CalculateContentsScale(2.f, 3.f, 4.f, false, | 110 layer->CalculateContentsScale(2.f, |
| 106 &contents_scale_x, &contents_scale_y, | 111 3.f, |
| 112 4.f, |
| 113 1.f, |
| 114 false, |
| 115 &contents_scale_x, |
| 116 &contents_scale_y, |
| 107 &content_bounds); | 117 &content_bounds); |
| 108 layer->UpdateTilePriorities(); | 118 layer->UpdateTilePriorities(); |
| 109 | 119 |
| 110 EXPECT_TRUE(layer->AreVisibleResourcesReady()); | 120 EXPECT_TRUE(layer->AreVisibleResourcesReady()); |
| 111 } | 121 } |
| 112 | 122 |
| 113 TEST_F(PictureImageLayerImplTest, IgnoreIdealContentScale) { | 123 TEST_F(PictureImageLayerImplTest, IgnoreIdealContentScale) { |
| 114 scoped_ptr<TestablePictureImageLayerImpl> pending_layer( | 124 scoped_ptr<TestablePictureImageLayerImpl> pending_layer( |
| 115 CreateLayer(1, PENDING_TREE)); | 125 CreateLayer(1, PENDING_TREE)); |
| 116 pending_layer->SetDrawsContent(true); | 126 pending_layer->SetDrawsContent(true); |
| 117 | 127 |
| 118 // Set PictureLayerImpl::ideal_contents_scale_ to 2.f which is not equal | 128 // Set PictureLayerImpl::ideal_contents_scale_ to 2.f which is not equal |
| 119 // to the content scale used by PictureImageLayerImpl. | 129 // to the content scale used by PictureImageLayerImpl. |
| 120 const float suggested_ideal_contents_scale = 2.f; | 130 const float suggested_ideal_contents_scale = 2.f; |
| 121 const float device_scale_factor = 3.f; | 131 const float device_scale_factor = 3.f; |
| 122 const float page_scale_factor = 4.f; | 132 const float page_scale_factor = 4.f; |
| 133 const float maximum_animation_scale_factor = 1.f; |
| 123 const bool animating_transform_to_screen = false; | 134 const bool animating_transform_to_screen = false; |
| 124 float contents_scale_x; | 135 float contents_scale_x; |
| 125 float contents_scale_y; | 136 float contents_scale_y; |
| 126 gfx::Size content_bounds; | 137 gfx::Size content_bounds; |
| 127 pending_layer->CalculateContentsScale(suggested_ideal_contents_scale, | 138 pending_layer->CalculateContentsScale(suggested_ideal_contents_scale, |
| 128 device_scale_factor, | 139 device_scale_factor, |
| 129 page_scale_factor, | 140 page_scale_factor, |
| 141 maximum_animation_scale_factor, |
| 130 animating_transform_to_screen, | 142 animating_transform_to_screen, |
| 131 &contents_scale_x, | 143 &contents_scale_x, |
| 132 &contents_scale_y, | 144 &contents_scale_y, |
| 133 &content_bounds); | 145 &content_bounds); |
| 134 | 146 |
| 135 // Push to active layer. | 147 // Push to active layer. |
| 136 host_impl_.ActivatePendingTree(); | 148 host_impl_.ActivatePendingTree(); |
| 137 scoped_ptr<TestablePictureImageLayerImpl> active_layer( | 149 scoped_ptr<TestablePictureImageLayerImpl> active_layer( |
| 138 CreateLayer(1, ACTIVE_TREE)); | 150 CreateLayer(1, ACTIVE_TREE)); |
| 139 pending_layer->PushPropertiesTo(active_layer.get()); | 151 pending_layer->PushPropertiesTo(active_layer.get()); |
| 140 active_layer->CalculateContentsScale(suggested_ideal_contents_scale, | 152 active_layer->CalculateContentsScale(suggested_ideal_contents_scale, |
| 141 device_scale_factor, | 153 device_scale_factor, |
| 142 page_scale_factor, | 154 page_scale_factor, |
| 155 maximum_animation_scale_factor, |
| 143 animating_transform_to_screen, | 156 animating_transform_to_screen, |
| 144 &contents_scale_x, | 157 &contents_scale_x, |
| 145 &contents_scale_y, | 158 &contents_scale_y, |
| 146 &content_bounds); | 159 &content_bounds); |
| 147 | 160 |
| 148 // Create tile and resource. | 161 // Create tile and resource. |
| 149 active_layer->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 162 active_layer->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| 150 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting( | 163 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting( |
| 151 active_layer->tilings()->tiling_at(0)->AllTilesForTesting()); | 164 active_layer->tilings()->tiling_at(0)->AllTilesForTesting()); |
| 152 | 165 |
| 153 // Draw. | 166 // Draw. |
| 154 active_layer->draw_properties().visible_content_rect = | 167 active_layer->draw_properties().visible_content_rect = |
| 155 gfx::Rect(active_layer->bounds()); | 168 gfx::Rect(active_layer->bounds()); |
| 156 MockQuadCuller quad_culler; | 169 MockQuadCuller quad_culler; |
| 157 AppendQuadsData data; | 170 AppendQuadsData data; |
| 158 active_layer->WillDraw(DRAW_MODE_SOFTWARE, NULL); | 171 active_layer->WillDraw(DRAW_MODE_SOFTWARE, NULL); |
| 159 active_layer->AppendQuads(&quad_culler, &data); | 172 active_layer->AppendQuads(&quad_culler, &data); |
| 160 active_layer->DidDraw(NULL); | 173 active_layer->DidDraw(NULL); |
| 161 | 174 |
| 162 EXPECT_EQ(DrawQuad::TILED_CONTENT, quad_culler.quad_list()[0]->material); | 175 EXPECT_EQ(DrawQuad::TILED_CONTENT, quad_culler.quad_list()[0]->material); |
| 163 | 176 |
| 164 // Tiles are ready at correct scale, so should not set had_incomplete_tile. | 177 // Tiles are ready at correct scale, so should not set had_incomplete_tile. |
| 165 EXPECT_FALSE(data.had_incomplete_tile); | 178 EXPECT_FALSE(data.had_incomplete_tile); |
| 166 } | 179 } |
| 167 | 180 |
| 168 } // namespace | 181 } // namespace |
| 169 } // namespace cc | 182 } // namespace cc |
| OLD | NEW |