| 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_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 pending_root->RemoveChild(pending_root->children()[0].get()) | 251 pending_root->RemoveChild(pending_root->children()[0].get()) |
| 252 .release())); | 252 .release())); |
| 253 if (!tile_size.IsEmpty()) | 253 if (!tile_size.IsEmpty()) |
| 254 pending_layer->set_fixed_tile_size(tile_size); | 254 pending_layer->set_fixed_tile_size(tile_size); |
| 255 } | 255 } |
| 256 pending_root->SetHasRenderSurface(true); | 256 pending_root->SetHasRenderSurface(true); |
| 257 // The bounds() just mirror the raster source size. | 257 // The bounds() just mirror the raster source size. |
| 258 pending_layer->SetBounds(raster_source->GetSize()); | 258 pending_layer->SetBounds(raster_source->GetSize()); |
| 259 pending_layer->SetRasterSourceOnPending(raster_source, invalidation); | 259 pending_layer->SetRasterSourceOnPending(raster_source, invalidation); |
| 260 | 260 |
| 261 pending_root->AddChild(pending_layer.Pass()); | 261 pending_root->AddChild(std::move(pending_layer)); |
| 262 pending_tree->SetRootLayer(pending_root.Pass()); | 262 pending_tree->SetRootLayer(std::move(pending_root)); |
| 263 | 263 |
| 264 pending_layer_ = static_cast<FakePictureLayerImpl*>( | 264 pending_layer_ = static_cast<FakePictureLayerImpl*>( |
| 265 host_impl_.pending_tree()->LayerById(id_)); | 265 host_impl_.pending_tree()->LayerById(id_)); |
| 266 | 266 |
| 267 // Add tilings/tiles for the layer. | 267 // Add tilings/tiles for the layer. |
| 268 bool update_lcd_text = false; | 268 bool update_lcd_text = false; |
| 269 RebuildPropertyTreesOnPendingTree(); | 269 RebuildPropertyTreesOnPendingTree(); |
| 270 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); | 270 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); |
| 271 } | 271 } |
| 272 | 272 |
| (...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1356 | 1356 |
| 1357 scoped_refptr<FakeDisplayListRasterSource> valid_raster_source = | 1357 scoped_refptr<FakeDisplayListRasterSource> valid_raster_source = |
| 1358 FakeDisplayListRasterSource::CreateFilled(layer_bounds); | 1358 FakeDisplayListRasterSource::CreateFilled(layer_bounds); |
| 1359 SetupPendingTree(valid_raster_source); | 1359 SetupPendingTree(valid_raster_source); |
| 1360 | 1360 |
| 1361 scoped_ptr<FakePictureLayerImpl> mask_ptr = | 1361 scoped_ptr<FakePictureLayerImpl> mask_ptr = |
| 1362 FakePictureLayerImpl::CreateMaskWithRasterSource( | 1362 FakePictureLayerImpl::CreateMaskWithRasterSource( |
| 1363 host_impl_.pending_tree(), 3, valid_raster_source); | 1363 host_impl_.pending_tree(), 3, valid_raster_source); |
| 1364 mask_ptr->SetBounds(layer_bounds); | 1364 mask_ptr->SetBounds(layer_bounds); |
| 1365 mask_ptr->SetDrawsContent(true); | 1365 mask_ptr->SetDrawsContent(true); |
| 1366 pending_layer_->SetMaskLayer(mask_ptr.Pass()); | 1366 pending_layer_->SetMaskLayer(std::move(mask_ptr)); |
| 1367 pending_layer_->SetHasRenderSurface(true); | 1367 pending_layer_->SetHasRenderSurface(true); |
| 1368 | 1368 |
| 1369 RebuildPropertyTreesOnPendingTree(); | 1369 RebuildPropertyTreesOnPendingTree(); |
| 1370 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); | 1370 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); |
| 1371 bool update_lcd_text = false; | 1371 bool update_lcd_text = false; |
| 1372 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); | 1372 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); |
| 1373 | 1373 |
| 1374 FakePictureLayerImpl* pending_mask = | 1374 FakePictureLayerImpl* pending_mask = |
| 1375 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer()); | 1375 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer()); |
| 1376 | 1376 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1485 | 1485 |
| 1486 scoped_refptr<FakeDisplayListRasterSource> valid_raster_source = | 1486 scoped_refptr<FakeDisplayListRasterSource> valid_raster_source = |
| 1487 FakeDisplayListRasterSource::CreateFilled(layer_bounds); | 1487 FakeDisplayListRasterSource::CreateFilled(layer_bounds); |
| 1488 SetupPendingTree(valid_raster_source); | 1488 SetupPendingTree(valid_raster_source); |
| 1489 | 1489 |
| 1490 scoped_ptr<FakePictureLayerImpl> mask_ptr = | 1490 scoped_ptr<FakePictureLayerImpl> mask_ptr = |
| 1491 FakePictureLayerImpl::CreateMaskWithRasterSource( | 1491 FakePictureLayerImpl::CreateMaskWithRasterSource( |
| 1492 host_impl_.pending_tree(), 3, valid_raster_source); | 1492 host_impl_.pending_tree(), 3, valid_raster_source); |
| 1493 mask_ptr->SetBounds(layer_bounds); | 1493 mask_ptr->SetBounds(layer_bounds); |
| 1494 mask_ptr->SetDrawsContent(true); | 1494 mask_ptr->SetDrawsContent(true); |
| 1495 pending_layer_->SetMaskLayer(mask_ptr.Pass()); | 1495 pending_layer_->SetMaskLayer(std::move(mask_ptr)); |
| 1496 pending_layer_->SetHasRenderSurface(true); | 1496 pending_layer_->SetHasRenderSurface(true); |
| 1497 | 1497 |
| 1498 RebuildPropertyTreesOnPendingTree(); | 1498 RebuildPropertyTreesOnPendingTree(); |
| 1499 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); | 1499 host_impl_.AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); |
| 1500 bool update_lcd_text = false; | 1500 bool update_lcd_text = false; |
| 1501 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); | 1501 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); |
| 1502 | 1502 |
| 1503 FakePictureLayerImpl* pending_mask = | 1503 FakePictureLayerImpl* pending_mask = |
| 1504 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer()); | 1504 static_cast<FakePictureLayerImpl*>(pending_layer_->mask_layer()); |
| 1505 | 1505 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1573 tile->content_rect().size().ToString()); | 1573 tile->content_rect().size().ToString()); |
| 1574 | 1574 |
| 1575 ResetTilingsAndRasterScales(); | 1575 ResetTilingsAndRasterScales(); |
| 1576 | 1576 |
| 1577 // Change the max texture size on the output surface context. | 1577 // Change the max texture size on the output surface context. |
| 1578 scoped_ptr<TestWebGraphicsContext3D> context = | 1578 scoped_ptr<TestWebGraphicsContext3D> context = |
| 1579 TestWebGraphicsContext3D::Create(); | 1579 TestWebGraphicsContext3D::Create(); |
| 1580 context->set_max_texture_size(140); | 1580 context->set_max_texture_size(140); |
| 1581 host_impl_.DidLoseOutputSurface(); | 1581 host_impl_.DidLoseOutputSurface(); |
| 1582 scoped_ptr<OutputSurface> new_output_surface = | 1582 scoped_ptr<OutputSurface> new_output_surface = |
| 1583 FakeOutputSurface::Create3d(context.Pass()); | 1583 FakeOutputSurface::Create3d(std::move(context)); |
| 1584 host_impl_.SetVisible(true); | 1584 host_impl_.SetVisible(true); |
| 1585 host_impl_.InitializeRenderer(new_output_surface.get()); | 1585 host_impl_.InitializeRenderer(new_output_surface.get()); |
| 1586 output_surface_ = new_output_surface.Pass(); | 1586 output_surface_ = std::move(new_output_surface); |
| 1587 | 1587 |
| 1588 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, | 1588 SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, |
| 1589 false); | 1589 false); |
| 1590 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); | 1590 ASSERT_EQ(1u, pending_layer_->tilings()->num_tilings()); |
| 1591 | 1591 |
| 1592 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 1592 pending_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| 1593 | 1593 |
| 1594 // Verify the tiles are not larger than the context's max texture size. | 1594 // Verify the tiles are not larger than the context's max texture size. |
| 1595 tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0]; | 1595 tile = pending_layer_->tilings()->tiling_at(0)->AllTilesForTesting()[0]; |
| 1596 EXPECT_GE(140, tile->content_rect().width()); | 1596 EXPECT_GE(140, tile->content_rect().width()); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1613 EXPECT_EQ(1u, high_res_tiling->AllTilesForTesting().size()); | 1613 EXPECT_EQ(1u, high_res_tiling->AllTilesForTesting().size()); |
| 1614 | 1614 |
| 1615 ResetTilingsAndRasterScales(); | 1615 ResetTilingsAndRasterScales(); |
| 1616 | 1616 |
| 1617 // Change the max texture size on the output surface context. | 1617 // Change the max texture size on the output surface context. |
| 1618 scoped_ptr<TestWebGraphicsContext3D> context = | 1618 scoped_ptr<TestWebGraphicsContext3D> context = |
| 1619 TestWebGraphicsContext3D::Create(); | 1619 TestWebGraphicsContext3D::Create(); |
| 1620 context->set_max_texture_size(140); | 1620 context->set_max_texture_size(140); |
| 1621 host_impl_.DidLoseOutputSurface(); | 1621 host_impl_.DidLoseOutputSurface(); |
| 1622 scoped_ptr<OutputSurface> new_output_surface = | 1622 scoped_ptr<OutputSurface> new_output_surface = |
| 1623 FakeOutputSurface::Create3d(context.Pass()); | 1623 FakeOutputSurface::Create3d(std::move(context)); |
| 1624 host_impl_.SetVisible(true); | 1624 host_impl_.SetVisible(true); |
| 1625 host_impl_.InitializeRenderer(new_output_surface.get()); | 1625 host_impl_.InitializeRenderer(new_output_surface.get()); |
| 1626 output_surface_ = new_output_surface.Pass(); | 1626 output_surface_ = std::move(new_output_surface); |
| 1627 | 1627 |
| 1628 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, | 1628 SetupDrawPropertiesAndUpdateTiles(active_layer_, 1.f, 1.f, 1.f, 1.f, 0.f, |
| 1629 false); | 1629 false); |
| 1630 ASSERT_LE(1u, active_layer_->tilings()->num_tilings()); | 1630 ASSERT_LE(1u, active_layer_->tilings()->num_tilings()); |
| 1631 | 1631 |
| 1632 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); | 1632 active_layer_->tilings()->tiling_at(0)->CreateAllTilesForTesting(); |
| 1633 | 1633 |
| 1634 // There should be more than one tile since the max texture size won't cover | 1634 // There should be more than one tile since the max texture size won't cover |
| 1635 // the layer. | 1635 // the layer. |
| 1636 high_res_tiling = active_layer_->tilings()->tiling_at(0); | 1636 high_res_tiling = active_layer_->tilings()->tiling_at(0); |
| (...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2280 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source = | 2280 scoped_refptr<FakeDisplayListRasterSource> pending_raster_source = |
| 2281 FakeDisplayListRasterSource::CreateFilled(layer_bounds); | 2281 FakeDisplayListRasterSource::CreateFilled(layer_bounds); |
| 2282 | 2282 |
| 2283 host_impl_.CreatePendingTree(); | 2283 host_impl_.CreatePendingTree(); |
| 2284 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); | 2284 LayerTreeImpl* pending_tree = host_impl_.pending_tree(); |
| 2285 | 2285 |
| 2286 scoped_ptr<FakePictureLayerImpl> pending_layer = | 2286 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| 2287 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_, | 2287 FakePictureLayerImpl::CreateWithRasterSource(pending_tree, id_, |
| 2288 pending_raster_source); | 2288 pending_raster_source); |
| 2289 pending_layer->SetDrawsContent(true); | 2289 pending_layer->SetDrawsContent(true); |
| 2290 pending_tree->SetRootLayer(pending_layer.Pass()); | 2290 pending_tree->SetRootLayer(std::move(pending_layer)); |
| 2291 | 2291 |
| 2292 pending_layer_ = static_cast<FakePictureLayerImpl*>( | 2292 pending_layer_ = static_cast<FakePictureLayerImpl*>( |
| 2293 host_impl_.pending_tree()->LayerById(id_)); | 2293 host_impl_.pending_tree()->LayerById(id_)); |
| 2294 | 2294 |
| 2295 // Set some state on the pending layer, make sure it is not clobbered | 2295 // Set some state on the pending layer, make sure it is not clobbered |
| 2296 // by a sync from the active layer. This could happen because if the | 2296 // by a sync from the active layer. This could happen because if the |
| 2297 // pending layer has not been post-commit initialized it will attempt | 2297 // pending layer has not been post-commit initialized it will attempt |
| 2298 // to sync from the active layer. | 2298 // to sync from the active layer. |
| 2299 float raster_page_scale = 10.f * pending_layer_->raster_page_scale(); | 2299 float raster_page_scale = 10.f * pending_layer_->raster_page_scale(); |
| 2300 pending_layer_->set_raster_page_scale(raster_page_scale); | 2300 pending_layer_->set_raster_page_scale(raster_page_scale); |
| (...skipping 2740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5041 // New low res tiling. | 5041 // New low res tiling. |
| 5042 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles()); | 5042 EXPECT_TRUE(tilings->tiling_at(2)->may_contain_low_resolution_tiles()); |
| 5043 | 5043 |
| 5044 // This tiling will be high res now, it won't contain low res content since it | 5044 // This tiling will be high res now, it won't contain low res content since it |
| 5045 // was all destroyed. | 5045 // was all destroyed. |
| 5046 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles()); | 5046 EXPECT_FALSE(tilings->tiling_at(1)->may_contain_low_resolution_tiles()); |
| 5047 } | 5047 } |
| 5048 | 5048 |
| 5049 } // namespace | 5049 } // namespace |
| 5050 } // namespace cc | 5050 } // namespace cc |
| OLD | NEW |