Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: cc/layers/tiled_layer_impl_unittest.cc

Issue 565043002: cc: Remove the opaque rect return-parameter from ContentLayerClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: contentlayerclientopaque: build Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/layers/tiled_layer_impl.cc ('k') | cc/layers/tiled_layer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 // visibility of the entire layer size. 46 // visibility of the entire layer size.
47 scoped_ptr<TiledLayerImpl> CreateLayer( 47 scoped_ptr<TiledLayerImpl> CreateLayer(
48 const gfx::Size& tile_size, 48 const gfx::Size& tile_size,
49 const gfx::Size& layer_size, 49 const gfx::Size& layer_size,
50 LayerTilingData::BorderTexelOption border_texels) { 50 LayerTilingData::BorderTexelOption border_texels) {
51 scoped_ptr<TiledLayerImpl> layer = 51 scoped_ptr<TiledLayerImpl> layer =
52 CreateLayerNoTiles(tile_size, layer_size, border_texels); 52 CreateLayerNoTiles(tile_size, layer_size, border_texels);
53 53
54 ResourceProvider::ResourceId resource_id = 1; 54 ResourceProvider::ResourceId resource_id = 1;
55 for (int i = 0; i < layer->TilingForTesting()->num_tiles_x(); ++i) { 55 for (int i = 0; i < layer->TilingForTesting()->num_tiles_x(); ++i) {
56 for (int j = 0; j < layer->TilingForTesting()->num_tiles_y(); ++j) { 56 for (int j = 0; j < layer->TilingForTesting()->num_tiles_y(); ++j)
57 gfx::Rect opaque_rect( 57 layer->PushTileProperties(i, j, resource_id++, false);
58 layer->TilingForTesting()->tile_bounds(i, j).origin(),
59 gfx::Size(1, 1));
60 layer->PushTileProperties(i, j, resource_id++, opaque_rect, false);
61 }
62 } 58 }
63 59
64 return layer.Pass(); 60 return layer.Pass();
65 } 61 }
66 62
67 void GetQuads(RenderPass* render_pass, 63 void GetQuads(RenderPass* render_pass,
68 const gfx::Size& tile_size, 64 const gfx::Size& tile_size,
69 const gfx::Size& layer_size, 65 const gfx::Size& layer_size,
70 LayerTilingData::BorderTexelOption border_texel_option, 66 LayerTilingData::BorderTexelOption border_texel_option,
71 const gfx::Rect& visible_content_rect) { 67 const gfx::Rect& visible_content_rect) {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data); 167 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data);
172 EXPECT_EQ(render_pass->quad_list.size(), 4u); 168 EXPECT_EQ(render_pass->quad_list.size(), 4u);
173 EXPECT_EQ(0u, data.num_missing_tiles); 169 EXPECT_EQ(0u, data.num_missing_tiles);
174 170
175 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) 171 for (size_t i = 0; i < render_pass->quad_list.size(); ++i)
176 EXPECT_EQ(render_pass->quad_list[i]->material, DrawQuad::TILED_CONTENT); 172 EXPECT_EQ(render_pass->quad_list[i]->material, DrawQuad::TILED_CONTENT);
177 } 173 }
178 174
179 for (int i = 0; i < num_tiles_x; ++i) 175 for (int i = 0; i < num_tiles_x; ++i)
180 for (int j = 0; j < num_tiles_y; ++j) 176 for (int j = 0; j < num_tiles_y; ++j)
181 layer->PushTileProperties(i, j, 0, gfx::Rect(), false); 177 layer->PushTileProperties(i, j, 0, false);
182 178
183 // All checkerboarding 179 // All checkerboarding
184 { 180 {
185 MockOcclusionTracker<LayerImpl> occlusion_tracker; 181 MockOcclusionTracker<LayerImpl> occlusion_tracker;
186 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 182 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
187 183
188 AppendQuadsData data; 184 AppendQuadsData data;
189 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data); 185 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data);
190 EXPECT_LT(0u, data.num_missing_tiles); 186 EXPECT_LT(0u, data.num_missing_tiles);
191 EXPECT_EQ(render_pass->quad_list.size(), 4u); 187 EXPECT_EQ(render_pass->quad_list.size(), 4u);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 264
269 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) { 265 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) {
270 const TileDrawQuad* quad = 266 const TileDrawQuad* quad =
271 TileDrawQuad::MaterialCast(render_pass->quad_list[i]); 267 TileDrawQuad::MaterialCast(render_pass->quad_list[i]);
272 268
273 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i; 269 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i;
274 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect) 270 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect)
275 << LayerTestCommon::quad_string << i; 271 << LayerTestCommon::quad_string << i;
276 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string 272 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string
277 << i; 273 << i;
278 EXPECT_EQ(gfx::Size(1, 1).ToString(), quad->opaque_rect.size().ToString())
279 << LayerTestCommon::quad_string << i;
280 } 274 }
281 } 275 }
282 276
283 TEST_F(TiledLayerImplTest, GPUMemoryUsage) { 277 TEST_F(TiledLayerImplTest, GPUMemoryUsage) {
284 gfx::Size tile_size(20, 30); 278 gfx::Size tile_size(20, 30);
285 int num_tiles_x = 12; 279 int num_tiles_x = 12;
286 int num_tiles_y = 32; 280 int num_tiles_y = 32;
287 gfx::Size layer_size(tile_size.width() * num_tiles_x, 281 gfx::Size layer_size(tile_size.width() * num_tiles_x,
288 tile_size.height() * num_tiles_y); 282 tile_size.height() * num_tiles_y);
289 283
290 scoped_ptr<TiledLayerImpl> layer = CreateLayerNoTiles( 284 scoped_ptr<TiledLayerImpl> layer = CreateLayerNoTiles(
291 tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 285 tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
292 286
293 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u); 287 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u);
294 288
295 ResourceProvider::ResourceId resource_id = 1; 289 ResourceProvider::ResourceId resource_id = 1;
296 layer->PushTileProperties(0, 1, resource_id++, gfx::Rect(0, 0, 1, 1), false); 290 layer->PushTileProperties(0, 1, resource_id++, false);
297 layer->PushTileProperties(2, 3, resource_id++, gfx::Rect(0, 0, 1, 1), false); 291 layer->PushTileProperties(2, 3, resource_id++, false);
298 layer->PushTileProperties(2, 0, resource_id++, gfx::Rect(0, 0, 1, 1), false); 292 layer->PushTileProperties(2, 0, resource_id++, false);
299 293
300 EXPECT_EQ( 294 EXPECT_EQ(
301 layer->GPUMemoryUsageInBytes(), 295 layer->GPUMemoryUsageInBytes(),
302 static_cast<size_t>(3 * 4 * tile_size.width() * tile_size.height())); 296 static_cast<size_t>(3 * 4 * tile_size.width() * tile_size.height()));
303 297
304 ResourceProvider::ResourceId empty_resource(0); 298 ResourceProvider::ResourceId empty_resource(0);
305 layer->PushTileProperties(0, 1, empty_resource, gfx::Rect(0, 0, 1, 1), false); 299 layer->PushTileProperties(0, 1, empty_resource, false);
306 layer->PushTileProperties(2, 3, empty_resource, gfx::Rect(0, 0, 1, 1), false); 300 layer->PushTileProperties(2, 3, empty_resource, false);
307 layer->PushTileProperties(2, 0, empty_resource, gfx::Rect(0, 0, 1, 1), false); 301 layer->PushTileProperties(2, 0, empty_resource, false);
308 302
309 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u); 303 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u);
310 } 304 }
311 305
312 TEST_F(TiledLayerImplTest, EmptyMask) { 306 TEST_F(TiledLayerImplTest, EmptyMask) {
313 gfx::Size tile_size(20, 20); 307 gfx::Size tile_size(20, 20);
314 gfx::Size layer_size(0, 0); 308 gfx::Size layer_size(0, 0);
315 scoped_ptr<TiledLayerImpl> layer = 309 scoped_ptr<TiledLayerImpl> layer =
316 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 310 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
317 311
(...skipping 16 matching lines...) Expand all
334 tiled_layer->set_skips_draw(false); 328 tiled_layer->set_skips_draw(false);
335 329
336 scoped_ptr<LayerTilingData> tiler = 330 scoped_ptr<LayerTilingData> tiler =
337 LayerTilingData::Create(tile_size, LayerTilingData::NO_BORDER_TEXELS); 331 LayerTilingData::Create(tile_size, LayerTilingData::NO_BORDER_TEXELS);
338 tiler->SetTilingSize(layer_bounds); 332 tiler->SetTilingSize(layer_bounds);
339 tiled_layer->SetTilingData(*tiler); 333 tiled_layer->SetTilingData(*tiler);
340 334
341 ResourceProvider::ResourceId resource_id = 1; 335 ResourceProvider::ResourceId resource_id = 1;
342 for (int i = 0; i < tiled_layer->TilingForTesting()->num_tiles_x(); ++i) { 336 for (int i = 0; i < tiled_layer->TilingForTesting()->num_tiles_x(); ++i) {
343 for (int j = 0; j < tiled_layer->TilingForTesting()->num_tiles_y(); ++j) 337 for (int j = 0; j < tiled_layer->TilingForTesting()->num_tiles_y(); ++j)
344 tiled_layer->PushTileProperties(i, j, resource_id++, gfx::Rect(), false); 338 tiled_layer->PushTileProperties(i, j, resource_id++, false);
345 } 339 }
346 340
347 impl.CalcDrawProps(viewport_size); 341 impl.CalcDrawProps(viewport_size);
348 342
349 { 343 {
350 SCOPED_TRACE("No occlusion"); 344 SCOPED_TRACE("No occlusion");
351 gfx::Rect occluded; 345 gfx::Rect occluded;
352 impl.AppendQuadsWithOcclusion(tiled_layer, occluded); 346 impl.AppendQuadsWithOcclusion(tiled_layer, occluded);
353 347
354 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), 348 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(),
(...skipping 22 matching lines...) Expand all
377 occluded, 371 occluded,
378 &partially_occluded_count); 372 &partially_occluded_count);
379 // The layer outputs one quad, which is partially occluded. 373 // The layer outputs one quad, which is partially occluded.
380 EXPECT_EQ(100u - 10u, impl.quad_list().size()); 374 EXPECT_EQ(100u - 10u, impl.quad_list().size());
381 EXPECT_EQ(10u + 10u, partially_occluded_count); 375 EXPECT_EQ(10u + 10u, partially_occluded_count);
382 } 376 }
383 } 377 }
384 378
385 } // namespace 379 } // namespace
386 } // namespace cc 380 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/tiled_layer_impl.cc ('k') | cc/layers/tiled_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698