OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 tilings_ = nullptr; | 669 tilings_ = nullptr; |
670 ResetRasterScale(); | 670 ResetRasterScale(); |
671 } | 671 } |
672 | 672 |
673 void PictureLayerImpl::RecreateResources() { | 673 void PictureLayerImpl::RecreateResources() { |
674 tilings_ = CreatePictureLayerTilingSet(); | 674 tilings_ = CreatePictureLayerTilingSet(); |
675 if (raster_source_) { | 675 if (raster_source_) { |
676 raster_source_->set_image_decode_controller( | 676 raster_source_->set_image_decode_controller( |
677 layer_tree_impl()->image_decode_controller()); | 677 layer_tree_impl()->image_decode_controller()); |
678 } | 678 } |
679 | |
680 // To avoid an edge case after lost context where the tree is up to date but | |
681 // the tilings have not been managed, request an update draw properties | |
682 // to force tilings to get managed. | |
683 layer_tree_impl()->set_needs_update_draw_properties(); | |
684 } | 679 } |
685 | 680 |
686 Region PictureLayerImpl::GetInvalidationRegionForDebugging() { | 681 Region PictureLayerImpl::GetInvalidationRegionForDebugging() { |
687 // |invalidation_| gives the invalidation contained in the source frame, but | 682 // |invalidation_| gives the invalidation contained in the source frame, but |
688 // is not cleared after drawing from the layer. However, update_rect() is | 683 // is not cleared after drawing from the layer. However, update_rect() is |
689 // cleared once the invalidation is drawn, which is useful for debugging | 684 // cleared once the invalidation is drawn, which is useful for debugging |
690 // visualizations. This method intersects the two to give a more exact | 685 // visualizations. This method intersects the two to give a more exact |
691 // representation of what was invalidated that is cleared after drawing. | 686 // representation of what was invalidated that is cleared after drawing. |
692 return IntersectRegions(invalidation_, update_rect()); | 687 return IntersectRegions(invalidation_, update_rect()); |
693 } | 688 } |
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1337 bool PictureLayerImpl::IsOnActiveOrPendingTree() const { | 1332 bool PictureLayerImpl::IsOnActiveOrPendingTree() const { |
1338 return !layer_tree_impl()->IsRecycleTree(); | 1333 return !layer_tree_impl()->IsRecycleTree(); |
1339 } | 1334 } |
1340 | 1335 |
1341 bool PictureLayerImpl::HasValidTilePriorities() const { | 1336 bool PictureLayerImpl::HasValidTilePriorities() const { |
1342 return IsOnActiveOrPendingTree() && | 1337 return IsOnActiveOrPendingTree() && |
1343 is_drawn_render_surface_layer_list_member(); | 1338 is_drawn_render_surface_layer_list_member(); |
1344 } | 1339 } |
1345 | 1340 |
1346 } // namespace cc | 1341 } // namespace cc |
OLD | NEW |