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/layers/tiled_layer_impl.h" | 5 #include "cc/layers/tiled_layer_impl.h" |
6 | 6 |
7 #include "cc/layers/append_quads_data.h" | 7 #include "cc/layers/append_quads_data.h" |
8 #include "cc/quads/tile_draw_quad.h" | 8 #include "cc/quads/tile_draw_quad.h" |
9 #include "cc/resources/layer_tiling_data.h" | 9 #include "cc/resources/layer_tiling_data.h" |
10 #include "cc/test/fake_impl_proxy.h" | 10 #include "cc/test/fake_impl_proxy.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 gfx::Size layer_size, | 29 gfx::Size layer_size, |
30 LayerTilingData::BorderTexelOption border_texels) { | 30 LayerTilingData::BorderTexelOption border_texels) { |
31 scoped_ptr<TiledLayerImpl> layer = | 31 scoped_ptr<TiledLayerImpl> layer = |
32 TiledLayerImpl::Create(host_impl_.active_tree(), 1); | 32 TiledLayerImpl::Create(host_impl_.active_tree(), 1); |
33 scoped_ptr<LayerTilingData> tiler = | 33 scoped_ptr<LayerTilingData> tiler = |
34 LayerTilingData::Create(tile_size, border_texels); | 34 LayerTilingData::Create(tile_size, border_texels); |
35 tiler->SetBounds(layer_size); | 35 tiler->SetBounds(layer_size); |
36 layer->SetTilingData(*tiler); | 36 layer->SetTilingData(*tiler); |
37 layer->set_skips_draw(false); | 37 layer->set_skips_draw(false); |
38 layer->draw_properties().visible_content_rect = | 38 layer->draw_properties().visible_content_rect = |
39 gfx::Rect(gfx::Point(), layer_size); | 39 gfx::Rect(layer_size); |
40 layer->draw_properties().opacity = 1; | 40 layer->draw_properties().opacity = 1; |
41 layer->SetBounds(layer_size); | 41 layer->SetBounds(layer_size); |
42 layer->SetContentBounds(layer_size); | 42 layer->SetContentBounds(layer_size); |
43 layer->CreateRenderSurface(); | 43 layer->CreateRenderSurface(); |
44 layer->draw_properties().render_target = layer.get(); | 44 layer->draw_properties().render_target = layer.get(); |
45 | 45 |
46 ResourceProvider::ResourceId resource_id = 1; | 46 ResourceProvider::ResourceId resource_id = 1; |
47 for (int i = 0; i < tiler->num_tiles_x(); ++i) { | 47 for (int i = 0; i < tiler->num_tiles_x(); ++i) { |
48 for (int j = 0; j < tiler->num_tiles_y(); ++j) { | 48 for (int j = 0; j < tiler->num_tiles_y(); ++j) { |
49 layer->PushTileProperties( | 49 layer->PushTileProperties( |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 AppendQuadsData data; | 103 AppendQuadsData data; |
104 layer->AppendQuads(&quad_culler, &data); | 104 layer->AppendQuads(&quad_culler, &data); |
105 EXPECT_EQ(quad_culler.quad_list().size(), 0u); | 105 EXPECT_EQ(quad_culler.quad_list().size(), 0u); |
106 } | 106 } |
107 | 107 |
108 // Layer with non-intersecting visible layer rect produces no quads | 108 // Layer with non-intersecting visible layer rect produces no quads |
109 { | 109 { |
110 scoped_ptr<TiledLayerImpl> layer = | 110 scoped_ptr<TiledLayerImpl> layer = |
111 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); | 111 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); |
112 | 112 |
113 gfx::Rect outside_bounds(gfx::Point(-100, -100), gfx::Size(50, 50)); | 113 gfx::Rect outside_bounds(-100, -100, 50, 50); |
114 layer->draw_properties().visible_content_rect = outside_bounds; | 114 layer->draw_properties().visible_content_rect = outside_bounds; |
115 | 115 |
116 MockQuadCuller quad_culler; | 116 MockQuadCuller quad_culler; |
117 AppendQuadsData data; | 117 AppendQuadsData data; |
118 layer->AppendQuads(&quad_culler, &data); | 118 layer->AppendQuads(&quad_culler, &data); |
119 EXPECT_EQ(quad_culler.quad_list().size(), 0u); | 119 EXPECT_EQ(quad_culler.quad_list().size(), 0u); |
120 } | 120 } |
121 | 121 |
122 // Layer with skips draw produces no quads | 122 // Layer with skips draw produces no quads |
123 { | 123 { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 void CoverageVisibleRectOnTileBoundaries( | 184 void CoverageVisibleRectOnTileBoundaries( |
185 LayerTilingData::BorderTexelOption borders) { | 185 LayerTilingData::BorderTexelOption borders) { |
186 gfx::Size layer_size(1000, 1000); | 186 gfx::Size layer_size(1000, 1000); |
187 QuadList quads; | 187 QuadList quads; |
188 SharedQuadStateList shared_states; | 188 SharedQuadStateList shared_states; |
189 GetQuads(&quads, | 189 GetQuads(&quads, |
190 &shared_states, | 190 &shared_states, |
191 gfx::Size(100, 100), | 191 gfx::Size(100, 100), |
192 layer_size, | 192 layer_size, |
193 borders, | 193 borders, |
194 gfx::Rect(gfx::Point(), layer_size)); | 194 gfx::Rect(layer_size)); |
195 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 195 LayerTestCommon::VerifyQuadsExactlyCoverRect(quads, gfx::Rect(layer_size)); |
196 quads, gfx::Rect(gfx::Point(), layer_size)); | |
197 } | 196 } |
198 | 197 |
199 void CoverageVisibleRectIntersectsTiles( | 198 void CoverageVisibleRectIntersectsTiles( |
200 LayerTilingData::BorderTexelOption borders) { | 199 LayerTilingData::BorderTexelOption borders) { |
201 // This rect intersects the middle 3x3 of the 5x5 tiles. | 200 // This rect intersects the middle 3x3 of the 5x5 tiles. |
202 gfx::Point top_left(65, 73); | 201 gfx::Point top_left(65, 73); |
203 gfx::Point bottom_right(182, 198); | 202 gfx::Point bottom_right(182, 198); |
204 gfx::Rect visible_content_rect = gfx::BoundingRect(top_left, bottom_right); | 203 gfx::Rect visible_content_rect = gfx::BoundingRect(top_left, bottom_right); |
205 | 204 |
206 gfx::Size layer_size(250, 250); | 205 gfx::Size layer_size(250, 250); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 TEST_F(TiledLayerImplTest, TextureInfoForLayerNoBorders) { | 238 TEST_F(TiledLayerImplTest, TextureInfoForLayerNoBorders) { |
240 gfx::Size tile_size(50, 50); | 239 gfx::Size tile_size(50, 50); |
241 gfx::Size layer_size(250, 250); | 240 gfx::Size layer_size(250, 250); |
242 QuadList quads; | 241 QuadList quads; |
243 SharedQuadStateList shared_states; | 242 SharedQuadStateList shared_states; |
244 GetQuads(&quads, | 243 GetQuads(&quads, |
245 &shared_states, | 244 &shared_states, |
246 tile_size, | 245 tile_size, |
247 layer_size, | 246 layer_size, |
248 LayerTilingData::NO_BORDER_TEXELS, | 247 LayerTilingData::NO_BORDER_TEXELS, |
249 gfx::Rect(gfx::Point(), layer_size)); | 248 gfx::Rect(layer_size)); |
250 | 249 |
251 for (size_t i = 0; i < quads.size(); ++i) { | 250 for (size_t i = 0; i < quads.size(); ++i) { |
252 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(quads[i]); | 251 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(quads[i]); |
253 | 252 |
254 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i; | 253 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i; |
255 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect) | 254 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect) |
256 << LayerTestCommon::quad_string << i; | 255 << LayerTestCommon::quad_string << i; |
257 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string | 256 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string |
258 << i; | 257 << i; |
259 EXPECT_EQ(gfx::Rect(0, 0, 1, 1), quad->opaque_rect) | 258 EXPECT_EQ(gfx::Rect(0, 0, 1, 1), quad->opaque_rect) |
260 << LayerTestCommon::quad_string << i; | 259 << LayerTestCommon::quad_string << i; |
261 } | 260 } |
262 } | 261 } |
263 | 262 |
264 } // namespace | 263 } // namespace |
265 } // namespace cc | 264 } // namespace cc |
OLD | NEW |