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

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

Issue 1866203004: Convert //cc from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptrcc: rebase Created 4 years, 8 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/picture_layer_impl_perftest.cc ('k') | cc/layers/picture_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 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_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 const Region& invalidation) { 222 const Region& invalidation) {
223 host_impl_.CreatePendingTree(); 223 host_impl_.CreatePendingTree();
224 host_impl_.pending_tree()->PushPageScaleFromMainThread(1.f, 0.00001f, 224 host_impl_.pending_tree()->PushPageScaleFromMainThread(1.f, 0.00001f,
225 100000.f); 225 100000.f);
226 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); 226 LayerTreeImpl* pending_tree = host_impl_.pending_tree();
227 pending_tree->SetDeviceScaleFactor( 227 pending_tree->SetDeviceScaleFactor(
228 host_impl_.active_tree()->device_scale_factor()); 228 host_impl_.active_tree()->device_scale_factor());
229 229
230 // Steal from the recycled tree if possible. 230 // Steal from the recycled tree if possible.
231 LayerImpl* pending_root = pending_tree->root_layer(); 231 LayerImpl* pending_root = pending_tree->root_layer();
232 scoped_ptr<FakePictureLayerImpl> pending_layer; 232 std::unique_ptr<FakePictureLayerImpl> pending_layer;
233 DCHECK(!pending_root || pending_root->id() == root_id_); 233 DCHECK(!pending_root || pending_root->id() == root_id_);
234 if (!pending_root) { 234 if (!pending_root) {
235 scoped_ptr<LayerImpl> new_pending_root = 235 std::unique_ptr<LayerImpl> new_pending_root =
236 LayerImpl::Create(pending_tree, root_id_); 236 LayerImpl::Create(pending_tree, root_id_);
237 pending_layer = FakePictureLayerImpl::Create(pending_tree, id_); 237 pending_layer = FakePictureLayerImpl::Create(pending_tree, id_);
238 if (!tile_size.IsEmpty()) 238 if (!tile_size.IsEmpty())
239 pending_layer->set_fixed_tile_size(tile_size); 239 pending_layer->set_fixed_tile_size(tile_size);
240 pending_layer->SetDrawsContent(true); 240 pending_layer->SetDrawsContent(true);
241 pending_layer->SetScrollClipLayer(new_pending_root->id()); 241 pending_layer->SetScrollClipLayer(new_pending_root->id());
242 pending_root = new_pending_root.get(); 242 pending_root = new_pending_root.get();
243 pending_tree->SetRootLayer(std::move(new_pending_root)); 243 pending_tree->SetRootLayer(std::move(new_pending_root));
244 } else { 244 } else {
245 pending_layer.reset(static_cast<FakePictureLayerImpl*>( 245 pending_layer.reset(static_cast<FakePictureLayerImpl*>(
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 // copy this over to the pending tree inside SetupPendingTreeInternal. 386 // copy this over to the pending tree inside SetupPendingTreeInternal.
387 host_impl_.active_tree()->SetDeviceScaleFactor(device_scale_factor); 387 host_impl_.active_tree()->SetDeviceScaleFactor(device_scale_factor);
388 } 388 }
389 389
390 protected: 390 protected:
391 void TestQuadsForSolidColor(bool test_for_solid); 391 void TestQuadsForSolidColor(bool test_for_solid);
392 392
393 FakeImplTaskRunnerProvider task_runner_provider_; 393 FakeImplTaskRunnerProvider task_runner_provider_;
394 TestSharedBitmapManager shared_bitmap_manager_; 394 TestSharedBitmapManager shared_bitmap_manager_;
395 TestTaskGraphRunner task_graph_runner_; 395 TestTaskGraphRunner task_graph_runner_;
396 scoped_ptr<OutputSurface> output_surface_; 396 std::unique_ptr<OutputSurface> output_surface_;
397 FakeLayerTreeHostImpl host_impl_; 397 FakeLayerTreeHostImpl host_impl_;
398 int root_id_; 398 int root_id_;
399 int id_; 399 int id_;
400 FakePictureLayerImpl* pending_layer_; 400 FakePictureLayerImpl* pending_layer_;
401 FakePictureLayerImpl* old_pending_layer_; 401 FakePictureLayerImpl* old_pending_layer_;
402 FakePictureLayerImpl* active_layer_; 402 FakePictureLayerImpl* active_layer_;
403 403
404 private: 404 private:
405 DISALLOW_COPY_AND_ASSIGN(PictureLayerImplTest); 405 DISALLOW_COPY_AND_ASSIGN(PictureLayerImplTest);
406 }; 406 };
407 407
408 class NoLowResPictureLayerImplTest : public PictureLayerImplTest { 408 class NoLowResPictureLayerImplTest : public PictureLayerImplTest {
409 public: 409 public:
410 NoLowResPictureLayerImplTest() 410 NoLowResPictureLayerImplTest()
411 : PictureLayerImplTest(NoLowResTilingsSettings()) {} 411 : PictureLayerImplTest(NoLowResTilingsSettings()) {}
412 }; 412 };
413 413
414 TEST_F(PictureLayerImplTest, TileGridAlignment) { 414 TEST_F(PictureLayerImplTest, TileGridAlignment) {
415 // Layer to span 4 raster tiles in x and in y 415 // Layer to span 4 raster tiles in x and in y
416 LayerTreeSettings settings; 416 LayerTreeSettings settings;
417 gfx::Size layer_size(settings.default_tile_size.width() * 7 / 2, 417 gfx::Size layer_size(settings.default_tile_size.width() * 7 / 2,
418 settings.default_tile_size.height() * 7 / 2); 418 settings.default_tile_size.height() * 7 / 2);
419 419
420 scoped_refptr<FakeRasterSource> pending_raster_source = 420 scoped_refptr<FakeRasterSource> pending_raster_source =
421 FakeRasterSource::CreateFilled(layer_size); 421 FakeRasterSource::CreateFilled(layer_size);
422 422
423 // Create an active recording source, but make sure it's not solid. 423 // Create an active recording source, but make sure it's not solid.
424 scoped_ptr<FakeRecordingSource> active_recording_source = 424 std::unique_ptr<FakeRecordingSource> active_recording_source =
425 FakeRecordingSource::CreateFilledRecordingSource(layer_size); 425 FakeRecordingSource::CreateFilledRecordingSource(layer_size);
426 active_recording_source->SetLayerBounds(layer_size); 426 active_recording_source->SetLayerBounds(layer_size);
427 active_recording_source->add_draw_rect(gfx::Rect(layer_size)); 427 active_recording_source->add_draw_rect(gfx::Rect(layer_size));
428 active_recording_source->add_draw_rect( 428 active_recording_source->add_draw_rect(
429 gfx::Rect(0, 0, layer_size.width() - 1, layer_size.height() - 1)); 429 gfx::Rect(0, 0, layer_size.width() - 1, layer_size.height() - 1));
430 active_recording_source->Rerecord(); 430 active_recording_source->Rerecord();
431 scoped_refptr<FakeRasterSource> active_raster_source = 431 scoped_refptr<FakeRasterSource> active_raster_source =
432 FakeRasterSource::CreateFromRecordingSource(active_recording_source.get(), 432 FakeRasterSource::CreateFromRecordingSource(active_recording_source.get(),
433 false); 433 false);
434 434
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
1287 maximum_animation_scale, 1287 maximum_animation_scale,
1288 starting_animation_scale, animating_transform); 1288 starting_animation_scale, animating_transform);
1289 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale); 1289 EXPECT_BOTH_EQ(HighResTiling()->contents_scale(), contents_scale);
1290 EXPECT_EQ(active_layer_->LowResTiling()->contents_scale(), 1290 EXPECT_EQ(active_layer_->LowResTiling()->contents_scale(),
1291 contents_scale * low_res_factor); 1291 contents_scale * low_res_factor);
1292 EXPECT_FALSE(pending_layer_->LowResTiling()); 1292 EXPECT_FALSE(pending_layer_->LowResTiling());
1293 EXPECT_EQ(active_layer_->num_tilings(), 2u); 1293 EXPECT_EQ(active_layer_->num_tilings(), 2u);
1294 EXPECT_EQ(pending_layer_->num_tilings(), 1u); 1294 EXPECT_EQ(pending_layer_->num_tilings(), 1u);
1295 1295
1296 // Mask layers dont create low res since they always fit on one tile. 1296 // Mask layers dont create low res since they always fit on one tile.
1297 scoped_ptr<FakePictureLayerImpl> mask = 1297 std::unique_ptr<FakePictureLayerImpl> mask =
1298 FakePictureLayerImpl::CreateMaskWithRasterSource( 1298 FakePictureLayerImpl::CreateMaskWithRasterSource(
1299 host_impl_.pending_tree(), 3, pending_raster_source); 1299 host_impl_.pending_tree(), 3, pending_raster_source);
1300 mask->SetBounds(layer_bounds); 1300 mask->SetBounds(layer_bounds);
1301 mask->SetDrawsContent(true); 1301 mask->SetDrawsContent(true);
1302 pending_layer_->SetMaskLayer(std::move(mask)); 1302 pending_layer_->SetMaskLayer(std::move(mask));
1303 pending_layer_->SetHasRenderSurface(true); 1303 pending_layer_->SetHasRenderSurface(true);
1304 RebuildPropertyTreesOnPendingTree(); 1304 RebuildPropertyTreesOnPendingTree();
1305 host_impl_.pending_tree()->UpdateDrawProperties(false); 1305 host_impl_.pending_tree()->UpdateDrawProperties(false);
1306 1306
1307 FakePictureLayerImpl* mask_raw = 1307 FakePictureLayerImpl* mask_raw =
1308 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer()); 1308 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer());
1309 SetupDrawPropertiesAndUpdateTiles( 1309 SetupDrawPropertiesAndUpdateTiles(
1310 mask_raw, contents_scale, device_scale, page_scale, 1310 mask_raw, contents_scale, device_scale, page_scale,
1311 maximum_animation_scale, starting_animation_scale, animating_transform); 1311 maximum_animation_scale, starting_animation_scale, animating_transform);
1312 EXPECT_EQ(mask_raw->HighResTiling()->contents_scale(), contents_scale); 1312 EXPECT_EQ(mask_raw->HighResTiling()->contents_scale(), contents_scale);
1313 EXPECT_EQ(mask_raw->num_tilings(), 1u); 1313 EXPECT_EQ(mask_raw->num_tilings(), 1u);
1314 } 1314 }
1315 1315
1316 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) { 1316 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) {
1317 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1317 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1318 1318
1319 gfx::Size layer_bounds(1000, 1000); 1319 gfx::Size layer_bounds(1000, 1000);
1320 1320
1321 scoped_refptr<FakeRasterSource> valid_raster_source = 1321 scoped_refptr<FakeRasterSource> valid_raster_source =
1322 FakeRasterSource::CreateFilled(layer_bounds); 1322 FakeRasterSource::CreateFilled(layer_bounds);
1323 SetupPendingTree(valid_raster_source); 1323 SetupPendingTree(valid_raster_source);
1324 1324
1325 scoped_ptr<FakePictureLayerImpl> mask_ptr = 1325 std::unique_ptr<FakePictureLayerImpl> mask_ptr =
1326 FakePictureLayerImpl::CreateMaskWithRasterSource( 1326 FakePictureLayerImpl::CreateMaskWithRasterSource(
1327 host_impl_.pending_tree(), 3, valid_raster_source); 1327 host_impl_.pending_tree(), 3, valid_raster_source);
1328 mask_ptr->SetBounds(layer_bounds); 1328 mask_ptr->SetBounds(layer_bounds);
1329 mask_ptr->SetDrawsContent(true); 1329 mask_ptr->SetDrawsContent(true);
1330 pending_layer_->SetMaskLayer(std::move(mask_ptr)); 1330 pending_layer_->SetMaskLayer(std::move(mask_ptr));
1331 pending_layer_->SetForceRenderSurface(true); 1331 pending_layer_->SetForceRenderSurface(true);
1332 1332
1333 RebuildPropertyTreesOnPendingTree(); 1333 RebuildPropertyTreesOnPendingTree();
1334 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1334 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1335 bool update_lcd_text = false; 1335 bool update_lcd_text = false;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1444 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1445 1445
1446 gfx::Size layer_bounds(1000, 1000); 1446 gfx::Size layer_bounds(1000, 1000);
1447 1447
1448 SetInitialDeviceScaleFactor(1.3f); 1448 SetInitialDeviceScaleFactor(1.3f);
1449 1449
1450 scoped_refptr<FakeRasterSource> valid_raster_source = 1450 scoped_refptr<FakeRasterSource> valid_raster_source =
1451 FakeRasterSource::CreateFilled(layer_bounds); 1451 FakeRasterSource::CreateFilled(layer_bounds);
1452 SetupPendingTree(valid_raster_source); 1452 SetupPendingTree(valid_raster_source);
1453 1453
1454 scoped_ptr<FakePictureLayerImpl> mask_ptr = 1454 std::unique_ptr<FakePictureLayerImpl> mask_ptr =
1455 FakePictureLayerImpl::CreateMaskWithRasterSource( 1455 FakePictureLayerImpl::CreateMaskWithRasterSource(
1456 host_impl_.pending_tree(), 3, valid_raster_source); 1456 host_impl_.pending_tree(), 3, valid_raster_source);
1457 mask_ptr->SetBounds(layer_bounds); 1457 mask_ptr->SetBounds(layer_bounds);
1458 mask_ptr->SetDrawsContent(true); 1458 mask_ptr->SetDrawsContent(true);
1459 pending_layer_->SetMaskLayer(std::move(mask_ptr)); 1459 pending_layer_->SetMaskLayer(std::move(mask_ptr));
1460 pending_layer_->SetForceRenderSurface(true); 1460 pending_layer_->SetForceRenderSurface(true);
1461 1461
1462 RebuildPropertyTreesOnPendingTree(); 1462 RebuildPropertyTreesOnPendingTree();
1463 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1463 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1464 bool update_lcd_text = false; 1464 bool update_lcd_text = false;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1532 EXPECT_EQ(gfx::Size(256, 256).ToString(), 1532 EXPECT_EQ(gfx::Size(256, 256).ToString(),
1533 host_impl_.settings().default_tile_size.ToString()); 1533 host_impl_.settings().default_tile_size.ToString());
1534 1534
1535 Tile* tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0]; 1535 Tile* tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0];
1536 EXPECT_EQ(gfx::Size(256, 256).ToString(), 1536 EXPECT_EQ(gfx::Size(256, 256).ToString(),
1537 tile->content_rect().size().ToString()); 1537 tile->content_rect().size().ToString());
1538 1538
1539 ResetTilingsAndRasterScales(); 1539 ResetTilingsAndRasterScales();
1540 1540
1541 // Change the max texture size on the output surface context. 1541 // Change the max texture size on the output surface context.
1542 scoped_ptr<TestWebGraphicsContext3D> context = 1542 std::unique_ptr<TestWebGraphicsContext3D> context =
1543 TestWebGraphicsContext3D::Create(); 1543 TestWebGraphicsContext3D::Create();
1544 context->set_max_texture_size(140); 1544 context->set_max_texture_size(140);
1545 host_impl_.DidLoseOutputSurface(); 1545 host_impl_.DidLoseOutputSurface();
1546 scoped_ptr<OutputSurface> new_output_surface = 1546 std::unique_ptr<OutputSurface> new_output_surface =
1547 FakeOutputSurface::Create3d(std::move(context)); 1547 FakeOutputSurface::Create3d(std::move(context));
1548 host_impl_.SetVisible(true); 1548 host_impl_.SetVisible(true);
1549 host_impl_.InitializeRenderer(new_output_surface.get()); 1549 host_impl_.InitializeRenderer(new_output_surface.get());
1550 output_surface_ = std::move(new_output_surface); 1550 output_surface_ = std::move(new_output_surface);
1551 1551
1552 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 1552 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
1553 false); 1553 false);
1554 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); 1554 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings());
1555 1555
1556 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); 1556 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
(...skipping 15 matching lines...) Expand all
1572 EXPECT_EQ(gfx::Size(512, 512).ToString(), 1572 EXPECT_EQ(gfx::Size(512, 512).ToString(),
1573 host_impl_.settings().max_untiled_layer_size.ToString()); 1573 host_impl_.settings().max_untiled_layer_size.ToString());
1574 1574
1575 // There should be a single tile since the layer is small. 1575 // There should be a single tile since the layer is small.
1576 PictureLayerTiling* high_res_tiling = active_layer_->tilings()->tiling_at(0); 1576 PictureLayerTiling* high_res_tiling = active_layer_->tilings()->tiling_at(0);
1577 EXPECT_EQ(1u, high_res_tiling->AllTilesForTesting().size()); 1577 EXPECT_EQ(1u, high_res_tiling->AllTilesForTesting().size());
1578 1578
1579 ResetTilingsAndRasterScales(); 1579 ResetTilingsAndRasterScales();
1580 1580
1581 // Change the max texture size on the output surface context. 1581 // Change the max texture size on the output surface context.
1582 scoped_ptr<TestWebGraphicsContext3D> context = 1582 std::unique_ptr<TestWebGraphicsContext3D> context =
1583 TestWebGraphicsContext3D::Create(); 1583 TestWebGraphicsContext3D::Create();
1584 context->set_max_texture_size(140); 1584 context->set_max_texture_size(140);
1585 host_impl_.DidLoseOutputSurface(); 1585 host_impl_.DidLoseOutputSurface();
1586 scoped_ptr<OutputSurface> new_output_surface = 1586 std::unique_ptr<OutputSurface> new_output_surface =
1587 FakeOutputSurface::Create3d(std::move(context)); 1587 FakeOutputSurface::Create3d(std::move(context));
1588 host_impl_.SetVisible(true); 1588 host_impl_.SetVisible(true);
1589 host_impl_.InitializeRenderer(new_output_surface.get()); 1589 host_impl_.InitializeRenderer(new_output_surface.get());
1590 output_surface_ = std::move(new_output_surface); 1590 output_surface_ = std::move(new_output_surface);
1591 1591
1592 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, 1592 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f,
1593 false); 1593 false);
1594 ASSERT_LE(1u, active_layer_->tilings()->num_tilings()); 1594 ASSERT_LE(1u, active_layer_->tilings()->num_tilings());
1595 1595
1596 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); 1596 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting();
1597 1597
1598 // There should be more than one tile since the max texture size won't cover 1598 // There should be more than one tile since the max texture size won't cover
1599 // the layer. 1599 // the layer.
1600 high_res_tiling = active_layer_->tilings()->tiling_at(0); 1600 high_res_tiling = active_layer_->tilings()->tiling_at(0);
1601 EXPECT_LT(1u, high_res_tiling->AllTilesForTesting().size()); 1601 EXPECT_LT(1u, high_res_tiling->AllTilesForTesting().size());
1602 1602
1603 // Verify the tiles are not larger than the context's max texture size. 1603 // Verify the tiles are not larger than the context's max texture size.
1604 Tile* tile = active_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0]; 1604 Tile* tile = active_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0];
1605 EXPECT_GE(140, tile->content_rect().width()); 1605 EXPECT_GE(140, tile->content_rect().width());
1606 EXPECT_GE(140, tile->content_rect().height()); 1606 EXPECT_GE(140, tile->content_rect().height());
1607 } 1607 }
1608 1608
1609 TEST_F(PictureLayerImplTest, DisallowTileDrawQuads) { 1609 TEST_F(PictureLayerImplTest, DisallowTileDrawQuads) {
1610 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1610 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1611 1611
1612 gfx::Size layer_bounds(1300, 1900); 1612 gfx::Size layer_bounds(1300, 1900);
1613 gfx::Rect layer_rect(layer_bounds); 1613 gfx::Rect layer_rect(layer_bounds);
1614 1614
1615 gfx::Rect layer_invalidation(150, 200, 30, 180); 1615 gfx::Rect layer_invalidation(150, 200, 30, 180);
1616 SetupDefaultTreesWithInvalidation(layer_bounds, layer_invalidation); 1616 SetupDefaultTreesWithInvalidation(layer_bounds, layer_invalidation);
1617 1617
1618 active_layer_->SetContentsOpaque(true); 1618 active_layer_->SetContentsOpaque(true);
1619 active_layer_->draw_properties().visible_layer_rect = gfx::Rect(layer_bounds); 1619 active_layer_->draw_properties().visible_layer_rect = gfx::Rect(layer_bounds);
1620 1620
1621 AppendQuadsData data; 1621 AppendQuadsData data;
1622 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, nullptr); 1622 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, nullptr);
1623 active_layer_->AppendQuads(render_pass.get(), &data); 1623 active_layer_->AppendQuads(render_pass.get(), &data);
1624 active_layer_->DidDraw(nullptr); 1624 active_layer_->DidDraw(nullptr);
1625 1625
1626 ASSERT_EQ(1u, render_pass->quad_list.size()); 1626 ASSERT_EQ(1u, render_pass->quad_list.size());
1627 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, 1627 EXPECT_EQ(DrawQuad::PICTURE_CONTENT,
1628 render_pass->quad_list.front()->material); 1628 render_pass->quad_list.front()->material);
1629 EXPECT_EQ(render_pass->quad_list.front()->rect, layer_rect); 1629 EXPECT_EQ(render_pass->quad_list.front()->rect, layer_rect);
1630 EXPECT_EQ(render_pass->quad_list.front()->opaque_rect, layer_rect); 1630 EXPECT_EQ(render_pass->quad_list.front()->opaque_rect, layer_rect);
1631 EXPECT_EQ(render_pass->quad_list.front()->visible_rect, layer_rect); 1631 EXPECT_EQ(render_pass->quad_list.front()->visible_rect, layer_rect);
1632 } 1632 }
1633 1633
1634 TEST_F(PictureLayerImplTest, ResourcelessPartialRecording) { 1634 TEST_F(PictureLayerImplTest, ResourcelessPartialRecording) {
1635 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1635 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1636 1636
1637 gfx::Size tile_size(400, 400); 1637 gfx::Size tile_size(400, 400);
1638 gfx::Size layer_bounds(700, 650); 1638 gfx::Size layer_bounds(700, 650);
1639 gfx::Rect layer_rect(layer_bounds); 1639 gfx::Rect layer_rect(layer_bounds);
1640 SetInitialDeviceScaleFactor(2.f); 1640 SetInitialDeviceScaleFactor(2.f);
1641 1641
1642 gfx::Rect recorded_viewport(20, 30, 40, 50); 1642 gfx::Rect recorded_viewport(20, 30, 40, 50);
1643 scoped_refptr<FakeRasterSource> active_raster_source = 1643 scoped_refptr<FakeRasterSource> active_raster_source =
1644 FakeRasterSource::CreatePartiallyFilled(layer_bounds, recorded_viewport); 1644 FakeRasterSource::CreatePartiallyFilled(layer_bounds, recorded_viewport);
1645 1645
(...skipping 16 matching lines...) Expand all
1662 ASSERT_EQ(1U, render_pass->quad_list.size()); 1662 ASSERT_EQ(1U, render_pass->quad_list.size());
1663 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, 1663 EXPECT_EQ(DrawQuad::PICTURE_CONTENT,
1664 render_pass->quad_list.front()->material); 1664 render_pass->quad_list.front()->material);
1665 const DrawQuad* quad = render_pass->quad_list.front(); 1665 const DrawQuad* quad = render_pass->quad_list.front();
1666 EXPECT_EQ(quad_visible, quad->rect); 1666 EXPECT_EQ(quad_visible, quad->rect);
1667 EXPECT_EQ(quad_visible, quad->opaque_rect); 1667 EXPECT_EQ(quad_visible, quad->opaque_rect);
1668 EXPECT_EQ(quad_visible, quad->visible_rect); 1668 EXPECT_EQ(quad_visible, quad->visible_rect);
1669 } 1669 }
1670 1670
1671 TEST_F(PictureLayerImplTest, ResourcelessEmptyRecording) { 1671 TEST_F(PictureLayerImplTest, ResourcelessEmptyRecording) {
1672 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1672 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1673 1673
1674 gfx::Size layer_bounds(700, 650); 1674 gfx::Size layer_bounds(700, 650);
1675 scoped_refptr<FakeRasterSource> active_raster_source = 1675 scoped_refptr<FakeRasterSource> active_raster_source =
1676 FakeRasterSource::CreatePartiallyFilled(layer_bounds, gfx::Rect()); 1676 FakeRasterSource::CreatePartiallyFilled(layer_bounds, gfx::Rect());
1677 SetupPendingTree(active_raster_source); 1677 SetupPendingTree(active_raster_source);
1678 ActivateTree(); 1678 ActivateTree();
1679 1679
1680 active_layer_->SetContentsOpaque(true); 1680 active_layer_->SetContentsOpaque(true);
1681 active_layer_->draw_properties().visible_layer_rect = gfx::Rect(layer_bounds); 1681 active_layer_->draw_properties().visible_layer_rect = gfx::Rect(layer_bounds);
1682 1682
1683 AppendQuadsData data; 1683 AppendQuadsData data;
1684 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, nullptr); 1684 active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, nullptr);
1685 active_layer_->AppendQuads(render_pass.get(), &data); 1685 active_layer_->AppendQuads(render_pass.get(), &data);
1686 active_layer_->DidDraw(nullptr); 1686 active_layer_->DidDraw(nullptr);
1687 1687
1688 EXPECT_EQ(0U, render_pass->quad_list.size()); 1688 EXPECT_EQ(0U, render_pass->quad_list.size());
1689 } 1689 }
1690 1690
1691 TEST_F(PictureLayerImplTest, SolidColorLayerHasVisibleFullCoverage) { 1691 TEST_F(PictureLayerImplTest, SolidColorLayerHasVisibleFullCoverage) {
1692 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1692 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1693 1693
1694 gfx::Size layer_bounds(1500, 1500); 1694 gfx::Size layer_bounds(1500, 1500);
1695 gfx::Rect visible_rect(250, 250, 1000, 1000); 1695 gfx::Rect visible_rect(250, 250, 1000, 1000);
1696 1696
1697 scoped_refptr<FakeRasterSource> pending_raster_source = 1697 scoped_refptr<FakeRasterSource> pending_raster_source =
1698 FakeRasterSource::CreateFilledSolidColor(layer_bounds); 1698 FakeRasterSource::CreateFilledSolidColor(layer_bounds);
1699 scoped_refptr<FakeRasterSource> active_raster_source = 1699 scoped_refptr<FakeRasterSource> active_raster_source =
1700 FakeRasterSource::CreateFilledSolidColor(layer_bounds); 1700 FakeRasterSource::CreateFilledSolidColor(layer_bounds);
1701 1701
1702 SetupTrees(pending_raster_source, active_raster_source); 1702 SetupTrees(pending_raster_source, active_raster_source);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1753 EXPECT_EQ(viewport, 1753 EXPECT_EQ(viewport,
1754 pending_layer_->viewport_rect_for_tile_priority_in_content_space()); 1754 pending_layer_->viewport_rect_for_tile_priority_in_content_space());
1755 1755
1756 base::TimeTicks time_ticks; 1756 base::TimeTicks time_ticks;
1757 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1757 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1758 pending_layer_->UpdateTiles(); 1758 pending_layer_->UpdateTiles();
1759 1759
1760 int num_visible = 0; 1760 int num_visible = 0;
1761 int num_offscreen = 0; 1761 int num_offscreen = 0;
1762 1762
1763 scoped_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll( 1763 std::unique_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll(
1764 pending_layer_->picture_layer_tiling_set(), false)); 1764 pending_layer_->picture_layer_tiling_set(), false));
1765 for (; !queue->IsEmpty(); queue->Pop()) { 1765 for (; !queue->IsEmpty(); queue->Pop()) {
1766 const PrioritizedTile& prioritized_tile = queue->Top(); 1766 const PrioritizedTile& prioritized_tile = queue->Top();
1767 DCHECK(prioritized_tile.tile()); 1767 DCHECK(prioritized_tile.tile());
1768 if (prioritized_tile.priority().distance_to_visible == 0.f) { 1768 if (prioritized_tile.priority().distance_to_visible == 0.f) {
1769 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); 1769 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation());
1770 num_visible++; 1770 num_visible++;
1771 } else { 1771 } else {
1772 EXPECT_FALSE(prioritized_tile.tile()->required_for_activation()); 1772 EXPECT_FALSE(prioritized_tile.tile()->required_for_activation());
1773 num_offscreen++; 1773 num_offscreen++;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1836 } 1836 }
1837 1837
1838 EXPECT_GT(num_inside, 0); 1838 EXPECT_GT(num_inside, 0);
1839 EXPECT_GT(num_outside, 0); 1839 EXPECT_GT(num_outside, 0);
1840 1840
1841 // Activate and draw active layer. 1841 // Activate and draw active layer.
1842 host_impl_.ActivateSyncTree(); 1842 host_impl_.ActivateSyncTree();
1843 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text); 1843 host_impl_.active_tree()->UpdateDrawProperties(update_lcd_text);
1844 active_layer_->draw_properties().visible_layer_rect = visible_layer_rect; 1844 active_layer_->draw_properties().visible_layer_rect = visible_layer_rect;
1845 1845
1846 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1846 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1847 AppendQuadsData data; 1847 AppendQuadsData data;
1848 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 1848 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
1849 active_layer_->AppendQuads(render_pass.get(), &data); 1849 active_layer_->AppendQuads(render_pass.get(), &data);
1850 active_layer_->DidDraw(nullptr); 1850 active_layer_->DidDraw(nullptr);
1851 1851
1852 // All tiles in activation rect is ready to draw. 1852 // All tiles in activation rect is ready to draw.
1853 EXPECT_EQ(0u, data.num_missing_tiles); 1853 EXPECT_EQ(0u, data.num_missing_tiles);
1854 EXPECT_EQ(0u, data.num_incomplete_tiles); 1854 EXPECT_EQ(0u, data.num_incomplete_tiles);
1855 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1855 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1856 } 1856 }
1857 1857
1858 TEST_F(PictureLayerImplTest, HighResTileIsComplete) { 1858 TEST_F(PictureLayerImplTest, HighResTileIsComplete) {
1859 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1859 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1860 1860
1861 gfx::Size tile_size(100, 100); 1861 gfx::Size tile_size(100, 100);
1862 gfx::Size layer_bounds(200, 200); 1862 gfx::Size layer_bounds(200, 200);
1863 1863
1864 scoped_refptr<FakeRasterSource> pending_raster_source = 1864 scoped_refptr<FakeRasterSource> pending_raster_source =
1865 FakeRasterSource::CreateFilled(layer_bounds); 1865 FakeRasterSource::CreateFilled(layer_bounds);
1866 1866
1867 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region()); 1867 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
1868 ActivateTree(); 1868 ActivateTree();
1869 1869
1870 // All high res tiles have resources. 1870 // All high res tiles have resources.
1871 std::vector<Tile*> tiles = 1871 std::vector<Tile*> tiles =
1872 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); 1872 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting();
1873 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); 1873 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
1874 1874
1875 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1875 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1876 AppendQuadsData data; 1876 AppendQuadsData data;
1877 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 1877 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
1878 active_layer_->AppendQuads(render_pass.get(), &data); 1878 active_layer_->AppendQuads(render_pass.get(), &data);
1879 active_layer_->DidDraw(nullptr); 1879 active_layer_->DidDraw(nullptr);
1880 1880
1881 // All high res tiles drew, nothing was incomplete. 1881 // All high res tiles drew, nothing was incomplete.
1882 EXPECT_EQ(9u, render_pass->quad_list.size()); 1882 EXPECT_EQ(9u, render_pass->quad_list.size());
1883 EXPECT_EQ(0u, data.num_missing_tiles); 1883 EXPECT_EQ(0u, data.num_missing_tiles);
1884 EXPECT_EQ(0u, data.num_incomplete_tiles); 1884 EXPECT_EQ(0u, data.num_incomplete_tiles);
1885 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1885 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
1886 } 1886 }
1887 1887
1888 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) { 1888 TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) {
1889 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1889 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1890 1890
1891 gfx::Size tile_size(100, 100); 1891 gfx::Size tile_size(100, 100);
1892 gfx::Size layer_bounds(200, 200); 1892 gfx::Size layer_bounds(200, 200);
1893 1893
1894 scoped_refptr<FakeRasterSource> pending_raster_source = 1894 scoped_refptr<FakeRasterSource> pending_raster_source =
1895 FakeRasterSource::CreateFilled(layer_bounds); 1895 FakeRasterSource::CreateFilled(layer_bounds);
1896 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region()); 1896 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
1897 ActivateTree(); 1897 ActivateTree();
1898 1898
1899 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1899 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1900 AppendQuadsData data; 1900 AppendQuadsData data;
1901 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 1901 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
1902 active_layer_->AppendQuads(render_pass.get(), &data); 1902 active_layer_->AppendQuads(render_pass.get(), &data);
1903 active_layer_->DidDraw(nullptr); 1903 active_layer_->DidDraw(nullptr);
1904 1904
1905 EXPECT_EQ(1u, render_pass->quad_list.size()); 1905 EXPECT_EQ(1u, render_pass->quad_list.size());
1906 EXPECT_EQ(1u, data.num_missing_tiles); 1906 EXPECT_EQ(1u, data.num_missing_tiles);
1907 EXPECT_EQ(0u, data.num_incomplete_tiles); 1907 EXPECT_EQ(0u, data.num_incomplete_tiles);
1908 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1908 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1909 } 1909 }
1910 1910
1911 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) { 1911 TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) {
1912 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1912 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
1913 1913
1914 gfx::Size tile_size(100, 100); 1914 gfx::Size tile_size(100, 100);
1915 gfx::Size layer_bounds(200, 200); 1915 gfx::Size layer_bounds(200, 200);
1916 1916
1917 scoped_refptr<FakeRasterSource> pending_raster_source = 1917 scoped_refptr<FakeRasterSource> pending_raster_source =
1918 FakeRasterSource::CreateFilled(layer_bounds); 1918 FakeRasterSource::CreateFilled(layer_bounds);
1919 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region()); 1919 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
1920 ActivateTree(); 1920 ActivateTree();
1921 1921
1922 std::vector<Tile*> low_tiles = 1922 std::vector<Tile*> low_tiles =
1923 active_layer_->tilings()->tiling_at(1)->AllTilesForTesting(); 1923 active_layer_->tilings()->tiling_at(1)->AllTilesForTesting();
1924 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(low_tiles); 1924 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(low_tiles);
1925 1925
1926 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1926 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1927 AppendQuadsData data; 1927 AppendQuadsData data;
1928 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 1928 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
1929 active_layer_->AppendQuads(render_pass.get(), &data); 1929 active_layer_->AppendQuads(render_pass.get(), &data);
1930 active_layer_->DidDraw(nullptr); 1930 active_layer_->DidDraw(nullptr);
1931 1931
1932 EXPECT_EQ(1u, render_pass->quad_list.size()); 1932 EXPECT_EQ(1u, render_pass->quad_list.size());
1933 EXPECT_EQ(0u, data.num_missing_tiles); 1933 EXPECT_EQ(0u, data.num_missing_tiles);
1934 EXPECT_EQ(1u, data.num_incomplete_tiles); 1934 EXPECT_EQ(1u, data.num_incomplete_tiles);
1935 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads()); 1935 EXPECT_TRUE(active_layer_->only_used_low_res_last_append_quads());
1936 } 1936 }
(...skipping 13 matching lines...) Expand all
1950 std::vector<Tile*> high_tiles = 1950 std::vector<Tile*> high_tiles =
1951 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); 1951 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting();
1952 high_tiles.erase(high_tiles.begin()); 1952 high_tiles.erase(high_tiles.begin());
1953 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(high_tiles); 1953 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(high_tiles);
1954 1954
1955 // All low res tiles have resources. 1955 // All low res tiles have resources.
1956 std::vector<Tile*> low_tiles = 1956 std::vector<Tile*> low_tiles =
1957 active_layer_->tilings()->tiling_at(1)->AllTilesForTesting(); 1957 active_layer_->tilings()->tiling_at(1)->AllTilesForTesting();
1958 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(low_tiles); 1958 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(low_tiles);
1959 1959
1960 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 1960 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
1961 AppendQuadsData data; 1961 AppendQuadsData data;
1962 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 1962 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
1963 active_layer_->AppendQuads(render_pass.get(), &data); 1963 active_layer_->AppendQuads(render_pass.get(), &data);
1964 active_layer_->DidDraw(nullptr); 1964 active_layer_->DidDraw(nullptr);
1965 1965
1966 // The missing high res tile was replaced by a low res tile. 1966 // The missing high res tile was replaced by a low res tile.
1967 EXPECT_EQ(9u, render_pass->quad_list.size()); 1967 EXPECT_EQ(9u, render_pass->quad_list.size());
1968 EXPECT_EQ(0u, data.num_missing_tiles); 1968 EXPECT_EQ(0u, data.num_missing_tiles);
1969 EXPECT_EQ(1u, data.num_incomplete_tiles); 1969 EXPECT_EQ(1u, data.num_incomplete_tiles);
1970 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads()); 1970 EXPECT_FALSE(active_layer_->only_used_low_res_last_append_quads());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2003 // Both tilings still exist. 2003 // Both tilings still exist.
2004 ASSERT_GE(active_layer_->tilings()->num_tilings(), 2u); 2004 ASSERT_GE(active_layer_->tilings()->num_tilings(), 2u);
2005 EXPECT_EQ(2.f, active_layer_->tilings()->tiling_at(0)->contents_scale()); 2005 EXPECT_EQ(2.f, active_layer_->tilings()->tiling_at(0)->contents_scale());
2006 EXPECT_EQ(1.f, active_layer_->tilings()->tiling_at(1)->contents_scale()); 2006 EXPECT_EQ(1.f, active_layer_->tilings()->tiling_at(1)->contents_scale());
2007 2007
2008 // All high res tiles have resources. 2008 // All high res tiles have resources.
2009 std::vector<Tile*> high_tiles = 2009 std::vector<Tile*> high_tiles =
2010 active_layer_->HighResTiling()->AllTilesForTesting(); 2010 active_layer_->HighResTiling()->AllTilesForTesting();
2011 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(high_tiles); 2011 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(high_tiles);
2012 2012
2013 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 2013 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
2014 AppendQuadsData data; 2014 AppendQuadsData data;
2015 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 2015 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
2016 active_layer_->AppendQuads(render_pass.get(), &data); 2016 active_layer_->AppendQuads(render_pass.get(), &data);
2017 active_layer_->DidDraw(nullptr); 2017 active_layer_->DidDraw(nullptr);
2018 2018
2019 // All high res tiles drew, and the one ideal res tile drew. 2019 // All high res tiles drew, and the one ideal res tile drew.
2020 ASSERT_GT(render_pass->quad_list.size(), 9u); 2020 ASSERT_GT(render_pass->quad_list.size(), 9u);
2021 EXPECT_EQ(gfx::SizeF(99.f, 99.f), 2021 EXPECT_EQ(gfx::SizeF(99.f, 99.f),
2022 TileDrawQuad::MaterialCast(render_pass->quad_list.front()) 2022 TileDrawQuad::MaterialCast(render_pass->quad_list.front())
2023 ->tex_coord_rect.size()); 2023 ->tex_coord_rect.size());
(...skipping 12 matching lines...) Expand all
2036 2036
2037 gfx::Size tile_size(100, 100); 2037 gfx::Size tile_size(100, 100);
2038 gfx::Size layer_bounds(200, 200); 2038 gfx::Size layer_bounds(200, 200);
2039 gfx::Rect recorded_viewport(0, 0, 150, 150); 2039 gfx::Rect recorded_viewport(0, 0, 150, 150);
2040 2040
2041 scoped_refptr<FakeRasterSource> pending_raster_source = 2041 scoped_refptr<FakeRasterSource> pending_raster_source =
2042 FakeRasterSource::CreatePartiallyFilled(layer_bounds, recorded_viewport); 2042 FakeRasterSource::CreatePartiallyFilled(layer_bounds, recorded_viewport);
2043 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region()); 2043 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
2044 ActivateTree(); 2044 ActivateTree();
2045 2045
2046 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 2046 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
2047 AppendQuadsData data; 2047 AppendQuadsData data;
2048 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 2048 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
2049 active_layer_->AppendQuads(render_pass.get(), &data); 2049 active_layer_->AppendQuads(render_pass.get(), &data);
2050 active_layer_->DidDraw(nullptr); 2050 active_layer_->DidDraw(nullptr);
2051 2051
2052 EXPECT_EQ(1u, render_pass->quad_list.size()); 2052 EXPECT_EQ(1u, render_pass->quad_list.size());
2053 EXPECT_EQ(1u, data.num_missing_tiles); 2053 EXPECT_EQ(1u, data.num_missing_tiles);
2054 EXPECT_EQ(0u, data.num_incomplete_tiles); 2054 EXPECT_EQ(0u, data.num_incomplete_tiles);
2055 EXPECT_EQ(40000, data.checkerboarded_visible_content_area); 2055 EXPECT_EQ(40000, data.checkerboarded_visible_content_area);
2056 EXPECT_EQ(17500, data.checkerboarded_no_recording_content_area); 2056 EXPECT_EQ(17500, data.checkerboarded_no_recording_content_area);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
2225 } 2225 }
2226 2226
2227 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) { 2227 TEST_F(PictureLayerImplTest, ActivateUninitializedLayer) {
2228 gfx::Size layer_bounds(400, 400); 2228 gfx::Size layer_bounds(400, 400);
2229 scoped_refptr<FakeRasterSource> pending_raster_source = 2229 scoped_refptr<FakeRasterSource> pending_raster_source =
2230 FakeRasterSource::CreateFilled(layer_bounds); 2230 FakeRasterSource::CreateFilled(layer_bounds);
2231 2231
2232 host_impl_.CreatePendingTree(); 2232 host_impl_.CreatePendingTree();
2233 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); 2233 LayerTreeImpl* pending_tree = host_impl_.pending_tree();
2234 2234
2235 scoped_ptr<FakePictureLayerImpl> pending_layer = 2235 std::unique_ptr<FakePictureLayerImpl> pending_layer =
2236 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_, 2236 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_,
2237 pending_raster_source); 2237 pending_raster_source);
2238 pending_layer->SetDrawsContent(true); 2238 pending_layer->SetDrawsContent(true);
2239 pending_tree->SetRootLayer(std::move(pending_layer)); 2239 pending_tree->SetRootLayer(std::move(pending_layer));
2240 2240
2241 pending_layer_ = static_cast<FakePictureLayerImpl*>( 2241 pending_layer_ = static_cast<FakePictureLayerImpl*>(
2242 host_impl_.pending_tree()->LayerById(id_)); 2242 host_impl_.pending_tree()->LayerById(id_));
2243 2243
2244 // Set some state on the pending layer, make sure it is not clobbered 2244 // Set some state on the pending layer, make sure it is not clobbered
2245 // by a sync from the active layer. This could happen because if the 2245 // by a sync from the active layer. This could happen because if the
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 2888
2889 SetupPendingTree(pending_raster_source); 2889 SetupPendingTree(pending_raster_source);
2890 EXPECT_EQ(1u, pending_layer_->num_tilings()); 2890 EXPECT_EQ(1u, pending_layer_->num_tilings());
2891 2891
2892 std::set<Tile*> unique_tiles; 2892 std::set<Tile*> unique_tiles;
2893 bool reached_prepaint = false; 2893 bool reached_prepaint = false;
2894 int non_ideal_tile_count = 0u; 2894 int non_ideal_tile_count = 0u;
2895 int low_res_tile_count = 0u; 2895 int low_res_tile_count = 0u;
2896 int high_res_tile_count = 0u; 2896 int high_res_tile_count = 0u;
2897 int high_res_now_tiles = 0u; 2897 int high_res_now_tiles = 0u;
2898 scoped_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll( 2898 std::unique_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll(
2899 pending_layer_->picture_layer_tiling_set(), false)); 2899 pending_layer_->picture_layer_tiling_set(), false));
2900 while (!queue->IsEmpty()) { 2900 while (!queue->IsEmpty()) {
2901 PrioritizedTile prioritized_tile = queue->Top(); 2901 PrioritizedTile prioritized_tile = queue->Top();
2902 TilePriority priority = prioritized_tile.priority(); 2902 TilePriority priority = prioritized_tile.priority();
2903 2903
2904 EXPECT_TRUE(prioritized_tile.tile()); 2904 EXPECT_TRUE(prioritized_tile.tile());
2905 2905
2906 // Non-high res tiles only get visible tiles. Also, prepaint should only 2906 // Non-high res tiles only get visible tiles. Also, prepaint should only
2907 // come at the end of the iteration. 2907 // come at the end of the iteration.
2908 if (priority.resolution != HIGH_RESOLUTION) { 2908 if (priority.resolution != HIGH_RESOLUTION) {
(...skipping 18 matching lines...) Expand all
2927 EXPECT_EQ(0, non_ideal_tile_count); 2927 EXPECT_EQ(0, non_ideal_tile_count);
2928 EXPECT_EQ(0, low_res_tile_count); 2928 EXPECT_EQ(0, low_res_tile_count);
2929 2929
2930 // With layer size being 1000x1000 and default tile size 256x256, we expect to 2930 // With layer size being 1000x1000 and default tile size 256x256, we expect to
2931 // see 4 now tiles out of 16 total high res tiles. 2931 // see 4 now tiles out of 16 total high res tiles.
2932 EXPECT_EQ(16, high_res_tile_count); 2932 EXPECT_EQ(16, high_res_tile_count);
2933 EXPECT_EQ(4, high_res_now_tiles); 2933 EXPECT_EQ(4, high_res_now_tiles);
2934 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count, 2934 EXPECT_EQ(low_res_tile_count + high_res_tile_count + non_ideal_tile_count,
2935 static_cast<int>(unique_tiles.size())); 2935 static_cast<int>(unique_tiles.size()));
2936 2936
2937 scoped_ptr<TilingSetRasterQueueRequired> required_queue( 2937 std::unique_ptr<TilingSetRasterQueueRequired> required_queue(
2938 new TilingSetRasterQueueRequired( 2938 new TilingSetRasterQueueRequired(
2939 pending_layer_->picture_layer_tiling_set(), 2939 pending_layer_->picture_layer_tiling_set(),
2940 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW)); 2940 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW));
2941 EXPECT_TRUE(required_queue->IsEmpty()); 2941 EXPECT_TRUE(required_queue->IsEmpty());
2942 2942
2943 required_queue.reset(new TilingSetRasterQueueRequired( 2943 required_queue.reset(new TilingSetRasterQueueRequired(
2944 pending_layer_->picture_layer_tiling_set(), 2944 pending_layer_->picture_layer_tiling_set(),
2945 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); 2945 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
2946 EXPECT_FALSE(required_queue->IsEmpty()); 2946 EXPECT_FALSE(required_queue->IsEmpty());
2947 int required_for_activation_count = 0; 2947 int required_for_activation_count = 0;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
3015 3015
3016 gfx::Size layer_bounds(1000, 1000); 3016 gfx::Size layer_bounds(1000, 1000);
3017 3017
3018 scoped_refptr<FakeRasterSource> pending_raster_source = 3018 scoped_refptr<FakeRasterSource> pending_raster_source =
3019 FakeRasterSource::CreateFilled(layer_bounds); 3019 FakeRasterSource::CreateFilled(layer_bounds);
3020 3020
3021 SetupPendingTree(pending_raster_source); 3021 SetupPendingTree(pending_raster_source);
3022 ActivateTree(); 3022 ActivateTree();
3023 EXPECT_EQ(2u, active_layer_->num_tilings()); 3023 EXPECT_EQ(2u, active_layer_->num_tilings());
3024 3024
3025 scoped_ptr<TilingSetRasterQueueRequired> queue( 3025 std::unique_ptr<TilingSetRasterQueueRequired> queue(
3026 new TilingSetRasterQueueRequired( 3026 new TilingSetRasterQueueRequired(
3027 active_layer_->picture_layer_tiling_set(), 3027 active_layer_->picture_layer_tiling_set(),
3028 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW)); 3028 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW));
3029 EXPECT_FALSE(queue->IsEmpty()); 3029 EXPECT_FALSE(queue->IsEmpty());
3030 while (!queue->IsEmpty()) { 3030 while (!queue->IsEmpty()) {
3031 PrioritizedTile prioritized_tile = queue->Top(); 3031 PrioritizedTile prioritized_tile = queue->Top();
3032 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); 3032 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw());
3033 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw()); 3033 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw());
3034 queue->Pop(); 3034 queue->Pop();
3035 } 3035 }
3036 3036
3037 queue.reset(new TilingSetRasterQueueRequired( 3037 queue.reset(new TilingSetRasterQueueRequired(
3038 active_layer_->picture_layer_tiling_set(), 3038 active_layer_->picture_layer_tiling_set(),
3039 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); 3039 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
3040 EXPECT_TRUE(queue->IsEmpty()); 3040 EXPECT_TRUE(queue->IsEmpty());
3041 } 3041 }
3042 3042
3043 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) { 3043 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) {
3044 scoped_refptr<FakeRasterSource> pending_raster_source = 3044 scoped_refptr<FakeRasterSource> pending_raster_source =
3045 FakeRasterSource::CreateFilledSolidColor(gfx::Size(1024, 1024)); 3045 FakeRasterSource::CreateFilledSolidColor(gfx::Size(1024, 1024));
3046 3046
3047 SetupPendingTree(pending_raster_source); 3047 SetupPendingTree(pending_raster_source);
3048 EXPECT_FALSE( 3048 EXPECT_FALSE(
3049 pending_layer_->picture_layer_tiling_set()->FindTilingWithResolution( 3049 pending_layer_->picture_layer_tiling_set()->FindTilingWithResolution(
3050 HIGH_RESOLUTION)); 3050 HIGH_RESOLUTION));
3051 3051
3052 scoped_ptr<TilingSetRasterQueueRequired> queue( 3052 std::unique_ptr<TilingSetRasterQueueRequired> queue(
3053 new TilingSetRasterQueueRequired( 3053 new TilingSetRasterQueueRequired(
3054 pending_layer_->picture_layer_tiling_set(), 3054 pending_layer_->picture_layer_tiling_set(),
3055 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); 3055 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
3056 EXPECT_TRUE(queue->IsEmpty()); 3056 EXPECT_TRUE(queue->IsEmpty());
3057 } 3057 }
3058 3058
3059 TEST_F(PictureLayerImplTest, TilingSetEvictionQueue) { 3059 TEST_F(PictureLayerImplTest, TilingSetEvictionQueue) {
3060 gfx::Size layer_bounds(1000, 1000); 3060 gfx::Size layer_bounds(1000, 1000);
3061 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor; 3061 float low_res_factor = host_impl_.settings().low_res_contents_scale_factor;
3062 3062
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3097 } 3097 }
3098 } 3098 }
3099 3099
3100 // Sanity checks. 3100 // Sanity checks.
3101 EXPECT_EQ(16u, all_tiles.size()); 3101 EXPECT_EQ(16u, all_tiles.size());
3102 EXPECT_EQ(16u, all_tiles_set.size()); 3102 EXPECT_EQ(16u, all_tiles_set.size());
3103 EXPECT_GT(number_of_marked_tiles, 1u); 3103 EXPECT_GT(number_of_marked_tiles, 1u);
3104 EXPECT_GT(number_of_unmarked_tiles, 1u); 3104 EXPECT_GT(number_of_unmarked_tiles, 1u);
3105 3105
3106 // Tiles don't have resources yet. 3106 // Tiles don't have resources yet.
3107 scoped_ptr<TilingSetEvictionQueue> queue( 3107 std::unique_ptr<TilingSetEvictionQueue> queue(
3108 new TilingSetEvictionQueue(pending_layer_->picture_layer_tiling_set())); 3108 new TilingSetEvictionQueue(pending_layer_->picture_layer_tiling_set()));
3109 EXPECT_TRUE(queue->IsEmpty()); 3109 EXPECT_TRUE(queue->IsEmpty());
3110 3110
3111 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles); 3111 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(all_tiles);
3112 3112
3113 std::set<Tile*> unique_tiles; 3113 std::set<Tile*> unique_tiles;
3114 float expected_scales[] = {low_res_factor, 1.f}; 3114 float expected_scales[] = {low_res_factor, 1.f};
3115 size_t scale_index = 0; 3115 size_t scale_index = 0;
3116 bool reached_visible = false; 3116 bool reached_visible = false;
3117 PrioritizedTile last_tile; 3117 PrioritizedTile last_tile;
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
3657 1.3f, // ideal contents scale 3657 1.3f, // ideal contents scale
3658 2.7f, // device scale 3658 2.7f, // device scale
3659 3.2f, // page scale 3659 3.2f, // page scale
3660 1.f, // maximum animation scale 3660 1.f, // maximum animation scale
3661 0.f, // starting animation scale 3661 0.f, // starting animation scale
3662 false); 3662 false);
3663 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings()); 3663 EXPECT_EQ(1u, pending_layer_->tilings()->num_tilings());
3664 } 3664 }
3665 3665
3666 TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) { 3666 TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) {
3667 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 3667 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
3668 3668
3669 gfx::Size layer_bounds(1000, 2000); 3669 gfx::Size layer_bounds(1000, 2000);
3670 host_impl_.SetViewportSize(gfx::Size(10000, 20000)); 3670 host_impl_.SetViewportSize(gfx::Size(10000, 20000));
3671 SetupDefaultTrees(layer_bounds); 3671 SetupDefaultTrees(layer_bounds);
3672 3672
3673 ResetTilingsAndRasterScales(); 3673 ResetTilingsAndRasterScales();
3674 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, 0.f, 3674 SetupDrawPropertiesAndUpdateTiles(active_layer_, 2.5f, 1.f, 1.f, 1.f, 0.f,
3675 false); 3675 false);
3676 3676
3677 float max_contents_scale = active_layer_->MaximumTilingContentsScale(); 3677 float max_contents_scale = active_layer_->MaximumTilingContentsScale();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
3742 gfx::Size tile_size(host_impl_.settings().default_tile_size); 3742 gfx::Size tile_size(host_impl_.settings().default_tile_size);
3743 size_t memory_limit = max_tiles * 4 * tile_size.width() * tile_size.height(); 3743 size_t memory_limit = max_tiles * 4 * tile_size.width() * tile_size.height();
3744 size_t resource_limit = max_tiles; 3744 size_t resource_limit = max_tiles;
3745 ManagedMemoryPolicy policy(memory_limit, 3745 ManagedMemoryPolicy policy(memory_limit,
3746 gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING, 3746 gpu::MemoryAllocation::CUTOFF_ALLOW_EVERYTHING,
3747 resource_limit); 3747 resource_limit);
3748 host_impl_.SetMemoryPolicy(policy); 3748 host_impl_.SetMemoryPolicy(policy);
3749 host_impl_.SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); 3749 host_impl_.SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES);
3750 host_impl_.PrepareTiles(); 3750 host_impl_.PrepareTiles();
3751 3751
3752 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 3752 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
3753 AppendQuadsData data; 3753 AppendQuadsData data;
3754 active_layer_->WillDraw(DRAW_MODE_HARDWARE, nullptr); 3754 active_layer_->WillDraw(DRAW_MODE_HARDWARE, nullptr);
3755 active_layer_->AppendQuads(render_pass.get(), &data); 3755 active_layer_->AppendQuads(render_pass.get(), &data);
3756 active_layer_->DidDraw(nullptr); 3756 active_layer_->DidDraw(nullptr);
3757 3757
3758 // Even when OOM, quads should be produced, and should be different material 3758 // Even when OOM, quads should be produced, and should be different material
3759 // from quads with resource. 3759 // from quads with resource.
3760 EXPECT_LT(max_tiles, render_pass->quad_list.size()); 3760 EXPECT_LT(max_tiles, render_pass->quad_list.size());
3761 EXPECT_EQ(DrawQuad::Material::TILED_CONTENT, 3761 EXPECT_EQ(DrawQuad::Material::TILED_CONTENT,
3762 render_pass->quad_list.front()->material); 3762 render_pass->quad_list.front()->material);
(...skipping 11 matching lines...) Expand all
3774 OcclusionTrackingPictureLayerImplTest() 3774 OcclusionTrackingPictureLayerImplTest()
3775 : PictureLayerImplTest(OcclusionTrackingSettings()) {} 3775 : PictureLayerImplTest(OcclusionTrackingSettings()) {}
3776 3776
3777 void VerifyEvictionConsidersOcclusion(FakePictureLayerImpl* layer, 3777 void VerifyEvictionConsidersOcclusion(FakePictureLayerImpl* layer,
3778 WhichTree tree, 3778 WhichTree tree,
3779 size_t expected_occluded_tile_count, 3779 size_t expected_occluded_tile_count,
3780 int source_line) { 3780 int source_line) {
3781 size_t occluded_tile_count = 0u; 3781 size_t occluded_tile_count = 0u;
3782 PrioritizedTile last_tile; 3782 PrioritizedTile last_tile;
3783 3783
3784 scoped_ptr<TilingSetEvictionQueue> queue( 3784 std::unique_ptr<TilingSetEvictionQueue> queue(
3785 new TilingSetEvictionQueue(layer->picture_layer_tiling_set())); 3785 new TilingSetEvictionQueue(layer->picture_layer_tiling_set()));
3786 while (!queue->IsEmpty()) { 3786 while (!queue->IsEmpty()) {
3787 PrioritizedTile prioritized_tile = queue->Top(); 3787 PrioritizedTile prioritized_tile = queue->Top();
3788 Tile* tile = prioritized_tile.tile(); 3788 Tile* tile = prioritized_tile.tile();
3789 if (!last_tile.tile()) 3789 if (!last_tile.tile())
3790 last_tile = prioritized_tile; 3790 last_tile = prioritized_tile;
3791 3791
3792 // The only way we will encounter an occluded tile after an unoccluded 3792 // The only way we will encounter an occluded tile after an unoccluded
3793 // tile is if the priorty bin decreased, the tile is required for 3793 // tile is if the priorty bin decreased, the tile is required for
3794 // activation, or the scale changed. 3794 // activation, or the scale changed.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3828 gfx::PointF occluding_layer_position(310.f, 0.f); 3828 gfx::PointF occluding_layer_position(310.f, 0.f);
3829 3829
3830 host_impl_.SetViewportSize(viewport_size); 3830 host_impl_.SetViewportSize(viewport_size);
3831 3831
3832 scoped_refptr<FakeRasterSource> pending_raster_source = 3832 scoped_refptr<FakeRasterSource> pending_raster_source =
3833 FakeRasterSource::CreateFilled(layer_bounds); 3833 FakeRasterSource::CreateFilled(layer_bounds);
3834 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region()); 3834 SetupPendingTreeWithFixedTileSize(pending_raster_source, tile_size, Region());
3835 3835
3836 // No occlusion. 3836 // No occlusion.
3837 int unoccluded_tile_count = 0; 3837 int unoccluded_tile_count = 0;
3838 scoped_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll( 3838 std::unique_ptr<TilingSetRasterQueueAll> queue(new TilingSetRasterQueueAll(
3839 pending_layer_->picture_layer_tiling_set(), false)); 3839 pending_layer_->picture_layer_tiling_set(), false));
3840 while (!queue->IsEmpty()) { 3840 while (!queue->IsEmpty()) {
3841 PrioritizedTile prioritized_tile = queue->Top(); 3841 PrioritizedTile prioritized_tile = queue->Top();
3842 Tile* tile = prioritized_tile.tile(); 3842 Tile* tile = prioritized_tile.tile();
3843 3843
3844 // Occluded tiles should not be iterated over. 3844 // Occluded tiles should not be iterated over.
3845 EXPECT_FALSE(prioritized_tile.is_occluded()); 3845 EXPECT_FALSE(prioritized_tile.is_occluded());
3846 3846
3847 // Some tiles may not be visible (i.e. outside the viewport). The rest are 3847 // Some tiles may not be visible (i.e. outside the viewport). The rest are
3848 // visible and at least partially unoccluded, verified by the above expect. 3848 // visible and at least partially unoccluded, verified by the above expect.
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after
4374 4374
4375 gfx::Size tile_size(100, 100); 4375 gfx::Size tile_size(100, 100);
4376 gfx::Size layer_bounds(200, 200); 4376 gfx::Size layer_bounds(200, 200);
4377 gfx::Rect layer_rect(layer_bounds); 4377 gfx::Rect layer_rect(layer_bounds);
4378 4378
4379 FakeContentLayerClient client; 4379 FakeContentLayerClient client;
4380 client.set_bounds(layer_bounds); 4380 client.set_bounds(layer_bounds);
4381 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4381 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4382 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4382 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4383 TestTaskGraphRunner task_graph_runner; 4383 TestTaskGraphRunner task_graph_runner;
4384 scoped_ptr<FakeLayerTreeHost> host = 4384 std::unique_ptr<FakeLayerTreeHost> host =
4385 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); 4385 FakeLayerTreeHost::Create(&host_client, &task_graph_runner);
4386 host->SetRootLayer(layer); 4386 host->SetRootLayer(layer);
4387 RecordingSource* recording_source = layer->GetRecordingSourceForTesting(); 4387 RecordingSource* recording_source = layer->GetRecordingSourceForTesting();
4388 4388
4389 int frame_number = 0; 4389 int frame_number = 0;
4390 4390
4391 client.set_fill_with_nonsolid_color(!test_for_solid); 4391 client.set_fill_with_nonsolid_color(!test_for_solid);
4392 4392
4393 Region invalidation(layer_rect); 4393 Region invalidation(layer_rect);
4394 recording_source->UpdateAndExpandInvalidation( 4394 recording_source->UpdateAndExpandInvalidation(
(...skipping 10 matching lines...) Expand all
4405 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings()); 4405 EXPECT_EQ(0u, active_layer_->tilings()->num_tilings());
4406 } else { 4406 } else {
4407 ASSERT_TRUE(active_layer_->tilings()); 4407 ASSERT_TRUE(active_layer_->tilings());
4408 ASSERT_GT(active_layer_->tilings()->num_tilings(), 0u); 4408 ASSERT_GT(active_layer_->tilings()->num_tilings(), 0u);
4409 std::vector<Tile*> tiles = 4409 std::vector<Tile*> tiles =
4410 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting(); 4410 active_layer_->tilings()->tiling_at(0)->AllTilesForTesting();
4411 EXPECT_FALSE(tiles.empty()); 4411 EXPECT_FALSE(tiles.empty());
4412 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); 4412 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
4413 } 4413 }
4414 4414
4415 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 4415 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
4416 AppendQuadsData data; 4416 AppendQuadsData data;
4417 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr); 4417 active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
4418 active_layer_->AppendQuads(render_pass.get(), &data); 4418 active_layer_->AppendQuads(render_pass.get(), &data);
4419 active_layer_->DidDraw(nullptr); 4419 active_layer_->DidDraw(nullptr);
4420 4420
4421 DrawQuad::Material expected = test_for_solid 4421 DrawQuad::Material expected = test_for_solid
4422 ? DrawQuad::Material::SOLID_COLOR 4422 ? DrawQuad::Material::SOLID_COLOR
4423 : DrawQuad::Material::TILED_CONTENT; 4423 : DrawQuad::Material::TILED_CONTENT;
4424 EXPECT_EQ(expected, render_pass->quad_list.front()->material); 4424 EXPECT_EQ(expected, render_pass->quad_list.front()->material);
4425 } 4425 }
(...skipping 11 matching lines...) Expand all
4437 4437
4438 gfx::Size tile_size(100, 100); 4438 gfx::Size tile_size(100, 100);
4439 gfx::Size layer_bounds(200, 200); 4439 gfx::Size layer_bounds(200, 200);
4440 gfx::Rect layer_rect(layer_bounds); 4440 gfx::Rect layer_rect(layer_bounds);
4441 4441
4442 FakeContentLayerClient client; 4442 FakeContentLayerClient client;
4443 client.set_bounds(layer_bounds); 4443 client.set_bounds(layer_bounds);
4444 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client); 4444 scoped_refptr<PictureLayer> layer = PictureLayer::Create(&client);
4445 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D); 4445 FakeLayerTreeHostClient host_client(FakeLayerTreeHostClient::DIRECT_3D);
4446 TestTaskGraphRunner task_graph_runner; 4446 TestTaskGraphRunner task_graph_runner;
4447 scoped_ptr<FakeLayerTreeHost> host = 4447 std::unique_ptr<FakeLayerTreeHost> host =
4448 FakeLayerTreeHost::Create(&host_client, &task_graph_runner); 4448 FakeLayerTreeHost::Create(&host_client, &task_graph_runner);
4449 host->SetRootLayer(layer); 4449 host->SetRootLayer(layer);
4450 RecordingSource* recording_source = layer->GetRecordingSourceForTesting(); 4450 RecordingSource* recording_source = layer->GetRecordingSourceForTesting();
4451 4451
4452 int frame_number = 0; 4452 int frame_number = 0;
4453 4453
4454 client.set_fill_with_nonsolid_color(true); 4454 client.set_fill_with_nonsolid_color(true);
4455 4455
4456 recording_source->SetNeedsDisplayRect(layer_rect); 4456 recording_source->SetNeedsDisplayRect(layer_rect);
4457 Region invalidation1; 4457 Region invalidation1;
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
4773 4773
4774 class TileSizeTest : public PictureLayerImplTest { 4774 class TileSizeTest : public PictureLayerImplTest {
4775 public: 4775 public:
4776 TileSizeTest() : PictureLayerImplTest(TileSizeSettings()) {} 4776 TileSizeTest() : PictureLayerImplTest(TileSizeSettings()) {}
4777 }; 4777 };
4778 4778
4779 TEST_F(TileSizeTest, TileSizes) { 4779 TEST_F(TileSizeTest, TileSizes) {
4780 host_impl_.CreatePendingTree(); 4780 host_impl_.CreatePendingTree();
4781 4781
4782 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); 4782 LayerTreeImpl* pending_tree = host_impl_.pending_tree();
4783 scoped_ptr<FakePictureLayerImpl> layer = 4783 std::unique_ptr<FakePictureLayerImpl> layer =
4784 FakePictureLayerImpl::Create(pending_tree, id_); 4784 FakePictureLayerImpl::Create(pending_tree, id_);
4785 4785
4786 host_impl_.SetViewportSize(gfx::Size(1000, 1000)); 4786 host_impl_.SetViewportSize(gfx::Size(1000, 1000));
4787 gfx::Size result; 4787 gfx::Size result;
4788 4788
4789 host_impl_.SetContentIsSuitableForGpuRasterization(true); 4789 host_impl_.SetContentIsSuitableForGpuRasterization(true);
4790 host_impl_.SetHasGpuRasterizationTrigger(false); 4790 host_impl_.SetHasGpuRasterizationTrigger(false);
4791 EXPECT_EQ(host_impl_.gpu_rasterization_status(), 4791 EXPECT_EQ(host_impl_.gpu_rasterization_status(),
4792 GpuRasterizationStatus::OFF_VIEWPORT); 4792 GpuRasterizationStatus::OFF_VIEWPORT);
4793 4793
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
4916 // New low res tiling. 4916 // New low res tiling.
4917 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles()); 4917 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles());
4918 4918
4919 // This tiling will be high res now, it won't contain low res content since it 4919 // This tiling will be high res now, it won't contain low res content since it
4920 // was all destroyed. 4920 // was all destroyed.
4921 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles()); 4921 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles());
4922 } 4922 }
4923 4923
4924 } // namespace 4924 } // namespace
4925 } // namespace cc 4925 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl_perftest.cc ('k') | cc/layers/picture_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698