| 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/resources/picture_layer_tiling_set.h" | 5 #include "cc/resources/picture_layer_tiling_set.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 layer_invalidation); | 105 layer_invalidation); |
| 106 | 106 |
| 107 // If the tiling is not shared (FindTilingWithScale returns nullptr), then | 107 // If the tiling is not shared (FindTilingWithScale returns nullptr), then |
| 108 // invalidate tiles and update them to the new raster source. | 108 // invalidate tiles and update them to the new raster source. |
| 109 for (PictureLayerTiling* tiling : tilings_) { | 109 for (PictureLayerTiling* tiling : tilings_) { |
| 110 if (pending_twin_set->FindTilingWithScale(tiling->contents_scale())) | 110 if (pending_twin_set->FindTilingWithScale(tiling->contents_scale())) |
| 111 continue; | 111 continue; |
| 112 | 112 |
| 113 tiling->SetRasterSourceAndResize(raster_source); | 113 tiling->SetRasterSourceAndResize(raster_source); |
| 114 tiling->Invalidate(layer_invalidation); | 114 tiling->Invalidate(layer_invalidation); |
| 115 tiling->SetRasterSourceOnTiles(); | |
| 116 // This is needed for cases where the live tiles rect didn't change but | 115 // This is needed for cases where the live tiles rect didn't change but |
| 117 // recordings exist in the raster source that did not exist on the last | 116 // recordings exist in the raster source that did not exist on the last |
| 118 // raster source. | 117 // raster source. |
| 119 tiling->CreateMissingTilesInLiveTilesRect(); | 118 tiling->CreateMissingTilesInLiveTilesRect(); |
| 120 | 119 |
| 121 // |this| is active set and |tiling| is not in the pending set, which means | 120 // |this| is active set and |tiling| is not in the pending set, which means |
| 122 // it is now NON_IDEAL_RESOLUTION. | 121 // it is now NON_IDEAL_RESOLUTION. |
| 123 tiling->set_resolution(NON_IDEAL_RESOLUTION); | 122 tiling->set_resolution(NON_IDEAL_RESOLUTION); |
| 124 } | 123 } |
| 125 | 124 |
| 126 VerifyTilings(pending_twin_set); | 125 VerifyTilings(pending_twin_set); |
| 127 } | 126 } |
| 128 | 127 |
| 129 void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForCommit( | 128 void PictureLayerTilingSet::UpdateTilingsToCurrentRasterSourceForCommit( |
| 130 scoped_refptr<RasterSource> raster_source, | 129 scoped_refptr<RasterSource> raster_source, |
| 131 const Region& layer_invalidation, | 130 const Region& layer_invalidation, |
| 132 float minimum_contents_scale, | 131 float minimum_contents_scale, |
| 133 float maximum_contents_scale) { | 132 float maximum_contents_scale) { |
| 134 RemoveTilingsBelowScale(minimum_contents_scale); | 133 RemoveTilingsBelowScale(minimum_contents_scale); |
| 135 RemoveTilingsAboveScale(maximum_contents_scale); | 134 RemoveTilingsAboveScale(maximum_contents_scale); |
| 136 | 135 |
| 137 // Invalidate tiles and update them to the new raster source. | 136 // Invalidate tiles and update them to the new raster source. |
| 138 for (PictureLayerTiling* tiling : tilings_) { | 137 for (PictureLayerTiling* tiling : tilings_) { |
| 139 tiling->SetRasterSourceAndResize(raster_source); | 138 tiling->SetRasterSourceAndResize(raster_source); |
| 140 tiling->Invalidate(layer_invalidation); | 139 tiling->Invalidate(layer_invalidation); |
| 141 tiling->SetRasterSourceOnTiles(); | |
| 142 // This is needed for cases where the live tiles rect didn't change but | 140 // This is needed for cases where the live tiles rect didn't change but |
| 143 // recordings exist in the raster source that did not exist on the last | 141 // recordings exist in the raster source that did not exist on the last |
| 144 // raster source. | 142 // raster source. |
| 145 tiling->CreateMissingTilesInLiveTilesRect(); | 143 tiling->CreateMissingTilesInLiveTilesRect(); |
| 146 } | 144 } |
| 147 VerifyTilings(nullptr /* pending_twin_set */); | 145 VerifyTilings(nullptr /* pending_twin_set */); |
| 148 } | 146 } |
| 149 | 147 |
| 150 void PictureLayerTilingSet::UpdateRasterSourceDueToLCDChange( | 148 void PictureLayerTilingSet::UpdateRasterSourceDueToLCDChange( |
| 151 const scoped_refptr<RasterSource>& raster_source, | 149 const scoped_refptr<RasterSource>& raster_source, |
| 152 const Region& layer_invalidation) { | 150 const Region& layer_invalidation) { |
| 153 for (PictureLayerTiling* tiling : tilings_) { | 151 for (PictureLayerTiling* tiling : tilings_) { |
| 154 tiling->SetRasterSourceAndResize(raster_source); | 152 tiling->SetRasterSourceAndResize(raster_source); |
| 155 tiling->Invalidate(layer_invalidation); | 153 tiling->Invalidate(layer_invalidation); |
| 156 // Since the invalidation changed, we need to create any missing tiles in | 154 // Since the invalidation changed, we need to create any missing tiles in |
| 157 // the live tiles rect again. | 155 // the live tiles rect again. |
| 158 tiling->CreateMissingTilesInLiveTilesRect(); | 156 tiling->CreateMissingTilesInLiveTilesRect(); |
| 159 tiling->VerifyAllTilesHaveCurrentRasterSource(); | |
| 160 } | 157 } |
| 161 } | 158 } |
| 162 | 159 |
| 163 void PictureLayerTilingSet::VerifyTilings( | 160 void PictureLayerTilingSet::VerifyTilings( |
| 164 const PictureLayerTilingSet* pending_twin_set) const { | 161 const PictureLayerTilingSet* pending_twin_set) const { |
| 165 #if DCHECK_IS_ON() | 162 #if DCHECK_IS_ON() |
| 166 for (PictureLayerTiling* tiling : tilings_) { | 163 for (PictureLayerTiling* tiling : tilings_) { |
| 167 DCHECK(tiling->tile_size() == | 164 DCHECK(tiling->tile_size() == |
| 168 client_->CalculateTileSize(tiling->tiling_size())) | 165 client_->CalculateTileSize(tiling->tiling_size())) |
| 169 << "tile_size: " << tiling->tile_size().ToString() | 166 << "tile_size: " << tiling->tile_size().ToString() |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 for (auto* tiling : tilings_) { | 363 for (auto* tiling : tilings_) { |
| 367 tiling->set_can_require_tiles_for_activation( | 364 tiling->set_can_require_tiles_for_activation( |
| 368 can_require_tiles_for_activation); | 365 can_require_tiles_for_activation); |
| 369 updated |= tiling->ComputeTilePriorityRects( | 366 updated |= tiling->ComputeTilePriorityRects( |
| 370 required_rect_in_layer_space, ideal_contents_scale, | 367 required_rect_in_layer_space, ideal_contents_scale, |
| 371 current_frame_time_in_seconds, occlusion_in_layer_space); | 368 current_frame_time_in_seconds, occlusion_in_layer_space); |
| 372 } | 369 } |
| 373 return updated; | 370 return updated; |
| 374 } | 371 } |
| 375 | 372 |
| 376 void PictureLayerTilingSet::GetAllTilesAndPrioritiesForTracing( | 373 void PictureLayerTilingSet::GetAllPrioritizedTilesForTracing( |
| 377 std::map<const Tile*, TilePriority>* tile_map) const { | 374 std::vector<PrioritizedTile>* prioritized_tiles) const { |
| 378 for (auto* tiling : tilings_) | 375 for (auto* tiling : tilings_) |
| 379 tiling->GetAllTilesAndPrioritiesForTracing(tile_map); | 376 tiling->GetAllPrioritizedTilesForTracing(prioritized_tiles); |
| 380 } | 377 } |
| 381 | 378 |
| 382 PictureLayerTilingSet::CoverageIterator::CoverageIterator( | 379 PictureLayerTilingSet::CoverageIterator::CoverageIterator( |
| 383 const PictureLayerTilingSet* set, | 380 const PictureLayerTilingSet* set, |
| 384 float contents_scale, | 381 float contents_scale, |
| 385 const gfx::Rect& content_rect, | 382 const gfx::Rect& content_rect, |
| 386 float ideal_contents_scale) | 383 float ideal_contents_scale) |
| 387 : set_(set), | 384 : set_(set), |
| 388 contents_scale_(contents_scale), | 385 contents_scale_(contents_scale), |
| 389 ideal_contents_scale_(ideal_contents_scale), | 386 ideal_contents_scale_(ideal_contents_scale), |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 case LOWER_THAN_LOW_RES: | 591 case LOWER_THAN_LOW_RES: |
| 595 range = TilingRange(low_res_range.end, tilings_.size()); | 592 range = TilingRange(low_res_range.end, tilings_.size()); |
| 596 break; | 593 break; |
| 597 } | 594 } |
| 598 | 595 |
| 599 DCHECK_LE(range.start, range.end); | 596 DCHECK_LE(range.start, range.end); |
| 600 return range; | 597 return range; |
| 601 } | 598 } |
| 602 | 599 |
| 603 } // namespace cc | 600 } // namespace cc |
| OLD | NEW |