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 #ifndef CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 5 #ifndef CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
6 #define CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 6 #define CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 LayerEvictionTileIterator(PictureLayerImpl* layer, | 70 LayerEvictionTileIterator(PictureLayerImpl* layer, |
71 TreePriority tree_priority); | 71 TreePriority tree_priority); |
72 ~LayerEvictionTileIterator(); | 72 ~LayerEvictionTileIterator(); |
73 | 73 |
74 Tile* operator*(); | 74 Tile* operator*(); |
75 const Tile* operator*() const; | 75 const Tile* operator*() const; |
76 LayerEvictionTileIterator& operator++(); | 76 LayerEvictionTileIterator& operator++(); |
77 operator bool() const; | 77 operator bool() const; |
78 | 78 |
79 private: | 79 private: |
| 80 enum RangeType { |
| 81 HIGHER_THAN_HIGH_RES, |
| 82 LOWER_THAN_LOW_RES, |
| 83 BETWEEN_HIGH_AND_LOW_RES, |
| 84 LOW_RES, |
| 85 HIGH_RES, |
| 86 NUM_RANGE_TYPES |
| 87 }; |
| 88 struct TilingIterationRange { |
| 89 int start_index; |
| 90 int one_past_end_index; |
| 91 }; |
| 92 struct IterationStage { |
| 93 IterationStage(TilePriority::PriorityBin type, bool is_required) |
| 94 : tile_type(type), required_for_activation(is_required) {} |
| 95 |
| 96 TilePriority::PriorityBin tile_type; |
| 97 bool required_for_activation; |
| 98 }; |
| 99 |
| 100 void ConstructRanges(); |
| 101 bool CurrentTilingIndexInRange(); |
80 void AdvanceToNextIterator(); | 102 void AdvanceToNextIterator(); |
81 bool IsCorrectType( | 103 bool AdvanceTiling(); |
82 PictureLayerTiling::TilingEvictionTileIterator* it) const; | 104 bool AdvanceRange(); |
| 105 bool AdvanceStage(); |
83 | 106 |
84 std::vector<PictureLayerTiling::TilingEvictionTileIterator> iterators_; | 107 PictureLayerTiling::TilingEvictionTileIterator iterator_; |
85 size_t iterator_index_; | 108 int current_tiling_index_; |
86 TilePriority::PriorityBin iteration_stage_; | 109 RangeType current_range_type_; |
87 bool required_for_activation_; | 110 IterationStage current_stage_; |
88 | 111 |
| 112 TilingIterationRange ranges_[NUM_RANGE_TYPES]; |
| 113 TreePriority tree_priority_; |
89 PictureLayerImpl* layer_; | 114 PictureLayerImpl* layer_; |
90 }; | 115 }; |
91 | 116 |
92 static scoped_ptr<PictureLayerImpl> Create(LayerTreeImpl* tree_impl, int id) { | 117 static scoped_ptr<PictureLayerImpl> Create(LayerTreeImpl* tree_impl, int id) { |
93 return make_scoped_ptr(new PictureLayerImpl(tree_impl, id)); | 118 return make_scoped_ptr(new PictureLayerImpl(tree_impl, id)); |
94 } | 119 } |
95 virtual ~PictureLayerImpl(); | 120 virtual ~PictureLayerImpl(); |
96 | 121 |
97 // LayerImpl overrides. | 122 // LayerImpl overrides. |
98 virtual const char* LayerTypeAsString() const OVERRIDE; | 123 virtual const char* LayerTypeAsString() const OVERRIDE; |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 gfx::Size viewport_size_for_tile_priority_; | 242 gfx::Size viewport_size_for_tile_priority_; |
218 gfx::Transform screen_space_transform_for_tile_priority_; | 243 gfx::Transform screen_space_transform_for_tile_priority_; |
219 | 244 |
220 friend class PictureLayer; | 245 friend class PictureLayer; |
221 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); | 246 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); |
222 }; | 247 }; |
223 | 248 |
224 } // namespace cc | 249 } // namespace cc |
225 | 250 |
226 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 251 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
OLD | NEW |