| Index: cc/layers/picture_layer_impl.cc
|
| diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
|
| index 94c3d201639d0dd90a29545ba18ca067f43edd8a..a62b5dfe94e1ba52cb82fa30cd1f4dccb6a86b27 100644
|
| --- a/cc/layers/picture_layer_impl.cc
|
| +++ b/cc/layers/picture_layer_impl.cc
|
| @@ -56,7 +56,9 @@ PictureLayerImpl::PictureLayerImpl(LayerTreeImpl* tree_impl, int id)
|
| should_update_tile_priorities_(false),
|
| should_use_low_res_tiling_(tree_impl->settings().create_low_res_tiling),
|
| use_gpu_rasterization_(false),
|
| - layer_needs_to_register_itself_(true) {}
|
| + layer_needs_to_register_itself_(true),
|
| + unitialized_tiles_required_for_activation_count_(0u) {
|
| +}
|
|
|
| PictureLayerImpl::~PictureLayerImpl() {
|
| if (!layer_needs_to_register_itself_)
|
| @@ -395,6 +397,7 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
| contents_scale_x(),
|
| current_frame_time_in_seconds);
|
|
|
| + unitialized_tiles_required_for_activation_count_ = 0u;
|
| if (layer_tree_impl()->IsPendingTree())
|
| MarkVisibleResourcesAsRequired();
|
|
|
| @@ -402,6 +405,18 @@ void PictureLayerImpl::UpdateTilePriorities() {
|
| layer_tree_impl()->DidModifyTilePriorities();
|
| }
|
|
|
| +void PictureLayerImpl::NotifyTileInitialized(const Tile* tile) {
|
| + if (layer_tree_impl()->IsActiveTree()) {
|
| + DCHECK_EQ(0u, unitialized_tiles_required_for_activation_count_);
|
| + return;
|
| + }
|
| +
|
| + if (tile->required_for_activation()) {
|
| + DCHECK_GT(unitialized_tiles_required_for_activation_count_, 0u);
|
| + --unitialized_tiles_required_for_activation_count_;
|
| + }
|
| +}
|
| +
|
| void PictureLayerImpl::DidBecomeActive() {
|
| LayerImpl::DidBecomeActive();
|
| tilings_->DidBecomeActive();
|
| @@ -726,7 +741,7 @@ ResourceProvider::ResourceId PictureLayerImpl::ContentsResourceId() const {
|
| return tile_version.get_resource_id();
|
| }
|
|
|
| -void PictureLayerImpl::MarkVisibleResourcesAsRequired() const {
|
| +void PictureLayerImpl::MarkVisibleResourcesAsRequired() {
|
| DCHECK(layer_tree_impl()->IsPendingTree());
|
| DCHECK(!layer_tree_impl()->needs_update_draw_properties());
|
| DCHECK(ideal_contents_scale_);
|
| @@ -834,7 +849,7 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired(
|
| const PictureLayerTiling* optional_twin_tiling,
|
| float contents_scale,
|
| const gfx::Rect& rect,
|
| - const Region& missing_region) const {
|
| + const Region& missing_region) {
|
| bool twin_had_missing_tile = false;
|
| for (PictureLayerTiling::CoverageIterator iter(tiling,
|
| contents_scale,
|
| @@ -861,8 +876,10 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired(
|
| continue;
|
| }
|
| }
|
| -
|
| + DCHECK(!tile->required_for_activation());
|
| tile->MarkRequiredForActivation();
|
| + if (!tile->IsReadyToDraw())
|
| + ++unitialized_tiles_required_for_activation_count_;
|
| }
|
| return twin_had_missing_tile;
|
| }
|
|
|