Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef CC_RESOURCES_TILING_SET_EVICTION_QUEUE_H_ | 5 #ifndef CC_RESOURCES_TILING_SET_EVICTION_QUEUE_H_ |
| 6 #define CC_RESOURCES_TILING_SET_EVICTION_QUEUE_H_ | 6 #define CC_RESOURCES_TILING_SET_EVICTION_QUEUE_H_ |
| 7 | 7 |
| 8 #include <vector> | |
| 9 | |
| 8 #include "cc/base/cc_export.h" | 10 #include "cc/base/cc_export.h" |
| 9 #include "cc/resources/picture_layer_tiling_set.h" | 11 #include "cc/resources/picture_layer_tiling_set.h" |
| 10 | 12 |
| 11 namespace cc { | 13 namespace cc { |
| 12 | 14 |
| 13 class CC_EXPORT TilingSetEvictionQueue { | 15 class CC_EXPORT TilingSetEvictionQueue { |
| 14 public: | 16 public: |
| 15 TilingSetEvictionQueue(); | 17 TilingSetEvictionQueue(); |
| 16 TilingSetEvictionQueue(PictureLayerTilingSet* tiling_set, | 18 TilingSetEvictionQueue(PictureLayerTilingSet* tiling_set, |
| 17 TreePriority tree_priority); | 19 TreePriority tree_priority, |
| 20 bool skip_shared_out_of_order_tiles); | |
| 18 ~TilingSetEvictionQueue(); | 21 ~TilingSetEvictionQueue(); |
| 19 | 22 |
| 20 Tile* Top(); | 23 Tile* Top(); |
| 21 const Tile* Top() const; | 24 const Tile* Top() const; |
| 22 void Pop(); | 25 void Pop(); |
| 23 bool IsEmpty() const; | 26 bool IsEmpty() const; |
| 24 | 27 |
| 25 private: | 28 private: |
| 26 bool AdvanceToNextCategory(); | |
| 27 bool AdvanceToNextEvictionTile(); | 29 bool AdvanceToNextEvictionTile(); |
| 30 bool AdvanceToNextPriorityBin(); | |
| 28 bool AdvanceToNextTilingRangeType(); | 31 bool AdvanceToNextTilingRangeType(); |
| 29 bool AdvanceToNextValidTiling(); | 32 bool AdvanceToNextValidTiling(); |
| 33 bool AdvanceToSkewport(); | |
| 30 | 34 |
| 31 PictureLayerTilingSet::TilingRange CurrentTilingRange() const; | 35 PictureLayerTilingSet::TilingRange CurrentTilingRange() const; |
| 32 size_t CurrentTilingIndex() const; | 36 size_t CurrentTilingIndex() const; |
| 37 bool IsSharedOutOfOrderTile(const Tile* tile) const; | |
| 38 | |
| 39 void SetCurrentRequiredForActivationTilingIndex(size_t index); | |
| 33 | 40 |
| 34 PictureLayerTilingSet* tiling_set_; | 41 PictureLayerTilingSet* tiling_set_; |
| 35 TreePriority tree_priority_; | 42 TreePriority tree_priority_; |
| 43 bool skip_shared_out_of_order_tiles_; | |
| 44 bool processing_required_for_activation_tiling_; | |
|
vmpstr
2014/12/09 02:10:59
I'm not sure what this means.. tilings aren't typi
USE eero AT chromium.org
2014/12/09 18:44:15
Yes. But it is also true if we are processing the
vmpstr
2014/12/09 19:47:55
I see. I think the second name is better, since it
USE eero AT chromium.org
2014/12/10 12:35:45
Done.
| |
| 45 bool processing_soon_border_rect_; | |
| 36 | 46 |
| 37 PictureLayerTiling::EvictionCategory current_category_; | 47 TilePriority::PriorityBin current_priority_bin_; |
| 48 PictureLayerTiling* current_tiling_; | |
| 38 size_t current_tiling_index_; | 49 size_t current_tiling_index_; |
| 50 size_t current_required_for_activation_tiling_index_; | |
| 39 PictureLayerTilingSet::TilingRangeType current_tiling_range_type_; | 51 PictureLayerTilingSet::TilingRangeType current_tiling_range_type_; |
| 40 Tile* current_eviction_tile_; | 52 Tile* current_eviction_tile_; |
| 41 | 53 |
| 42 const std::vector<Tile*>* eviction_tiles_; | 54 TilingData::ReverseSpiralDifferenceIterator spiral_iterator_; |
| 43 size_t next_eviction_tile_index_; | 55 TilingData::Iterator visible_iterator_; |
| 56 std::vector<Tile*> unoccluded_now_tiles_; | |
| 57 size_t next_unoccluded_now_tile_index_; | |
| 44 }; | 58 }; |
| 45 | 59 |
| 46 } // namespace cc | 60 } // namespace cc |
| 47 | 61 |
| 48 #endif // CC_RESOURCES_TILING_SET_RASTER_QUEUE_H_ | 62 #endif // CC_RESOURCES_TILING_SET_EVICTION_QUEUE_H_ |
| OLD | NEW |