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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) | 89 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) |
90 OVERRIDE; | 90 OVERRIDE; |
91 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; | 91 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; |
92 virtual void AppendQuads(QuadSink* quad_sink, | 92 virtual void AppendQuads(QuadSink* quad_sink, |
93 AppendQuadsData* append_quads_data) OVERRIDE; | 93 AppendQuadsData* append_quads_data) OVERRIDE; |
94 virtual void UpdateTilePriorities() OVERRIDE; | 94 virtual void UpdateTilePriorities() OVERRIDE; |
95 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE; | 95 virtual void NotifyTileStateChanged(const Tile* tile) OVERRIDE; |
96 virtual void DidBecomeActive() OVERRIDE; | 96 virtual void DidBecomeActive() OVERRIDE; |
97 virtual void DidBeginTracing() OVERRIDE; | 97 virtual void DidBeginTracing() OVERRIDE; |
98 virtual void ReleaseResources() OVERRIDE; | 98 virtual void ReleaseResources() OVERRIDE; |
99 virtual void CalculateContentsScale(float ideal_contents_scale, | |
100 float device_scale_factor, | |
101 float page_scale_factor, | |
102 float maximum_animation_contents_scale, | |
103 bool animating_transform_to_screen, | |
104 float* contents_scale_x, | |
105 float* contents_scale_y, | |
106 gfx::Size* content_bounds) OVERRIDE; | |
107 virtual skia::RefPtr<SkPicture> GetPicture() OVERRIDE; | 99 virtual skia::RefPtr<SkPicture> GetPicture() OVERRIDE; |
108 | 100 |
109 // PictureLayerTilingClient overrides. | 101 // PictureLayerTilingClient overrides. |
110 virtual scoped_refptr<Tile> CreateTile( | 102 virtual scoped_refptr<Tile> CreateTile( |
111 PictureLayerTiling* tiling, | 103 PictureLayerTiling* tiling, |
112 const gfx::Rect& content_rect) OVERRIDE; | 104 const gfx::Rect& content_rect) OVERRIDE; |
113 virtual void UpdatePile(Tile* tile) OVERRIDE; | 105 virtual void UpdatePile(Tile* tile) OVERRIDE; |
114 virtual gfx::Size CalculateTileSize( | 106 virtual gfx::Size CalculateTileSize( |
115 const gfx::Size& content_bounds) const OVERRIDE; | 107 const gfx::Size& content_bounds) const OVERRIDE; |
116 virtual const Region* GetInvalidation() OVERRIDE; | 108 virtual const Region* GetInvalidation() OVERRIDE; |
(...skipping 14 matching lines...) Expand all Loading... |
131 | 123 |
132 virtual void RunMicroBenchmark(MicroBenchmarkImpl* benchmark) OVERRIDE; | 124 virtual void RunMicroBenchmark(MicroBenchmarkImpl* benchmark) OVERRIDE; |
133 | 125 |
134 // Functions used by tile manager. | 126 // Functions used by tile manager. |
135 void DidUnregisterLayer(); | 127 void DidUnregisterLayer(); |
136 PictureLayerImpl* GetTwinLayer() { return twin_layer_; } | 128 PictureLayerImpl* GetTwinLayer() { return twin_layer_; } |
137 WhichTree GetTree() const; | 129 WhichTree GetTree() const; |
138 bool IsOnActiveOrPendingTree() const; | 130 bool IsOnActiveOrPendingTree() const; |
139 bool AllTilesRequiredForActivationAreReadyToDraw() const; | 131 bool AllTilesRequiredForActivationAreReadyToDraw() const; |
140 | 132 |
| 133 virtual void UpdateIdealScales(); |
| 134 float MaximumTilingContentScale() const; |
| 135 |
| 136 bool CanHaveTilings() const; |
| 137 void ManageTilings(bool animating_transform_to_screen, |
| 138 float maximum_animation_contents_scale); |
| 139 |
141 protected: | 140 protected: |
142 friend class LayerRasterTileIterator; | 141 friend class LayerRasterTileIterator; |
143 | 142 |
144 PictureLayerImpl(LayerTreeImpl* tree_impl, int id); | 143 PictureLayerImpl(LayerTreeImpl* tree_impl, int id); |
145 PictureLayerTiling* AddTiling(float contents_scale); | 144 PictureLayerTiling* AddTiling(float contents_scale); |
146 void RemoveTiling(float contents_scale); | 145 void RemoveTiling(float contents_scale); |
147 void RemoveAllTilings(); | 146 void RemoveAllTilings(); |
148 void SyncFromActiveLayer(const PictureLayerImpl* other); | 147 void SyncFromActiveLayer(const PictureLayerImpl* other); |
149 void ManageTilings(bool animating_transform_to_screen, | |
150 float maximum_animation_contents_scale); | |
151 virtual bool ShouldAdjustRasterScale( | 148 virtual bool ShouldAdjustRasterScale( |
152 bool animating_transform_to_screen) const; | 149 bool animating_transform_to_screen) const; |
153 virtual void RecalculateRasterScales(bool animating_transform_to_screen, | 150 virtual void RecalculateRasterScales(bool animating_transform_to_screen, |
154 float maximum_animation_contents_scale); | 151 float maximum_animation_contents_scale); |
155 void CleanUpTilingsOnActiveLayer( | 152 void CleanUpTilingsOnActiveLayer( |
156 std::vector<PictureLayerTiling*> used_tilings); | 153 std::vector<PictureLayerTiling*> used_tilings); |
157 float MinimumContentsScale() const; | 154 float MinimumContentsScale() const; |
158 float SnappedContentsScale(float new_contents_scale); | 155 float SnappedContentsScale(float new_contents_scale); |
159 void UpdateLCDTextStatus(bool new_status); | 156 void UpdateLCDTextStatus(bool new_status); |
160 void ResetRasterScale(); | 157 void ResetRasterScale(); |
161 void MarkVisibleResourcesAsRequired() const; | 158 void MarkVisibleResourcesAsRequired() const; |
162 bool MarkVisibleTilesAsRequired( | 159 bool MarkVisibleTilesAsRequired( |
163 PictureLayerTiling* tiling, | 160 PictureLayerTiling* tiling, |
164 const PictureLayerTiling* optional_twin_tiling, | 161 const PictureLayerTiling* optional_twin_tiling, |
165 float contents_scale, | 162 float contents_scale, |
166 const gfx::Rect& rect, | 163 const gfx::Rect& rect, |
167 const Region& missing_region) const; | 164 const Region& missing_region) const; |
168 | 165 |
169 void DoPostCommitInitializationIfNeeded() { | 166 void DoPostCommitInitializationIfNeeded() { |
170 if (needs_post_commit_initialization_) | 167 if (needs_post_commit_initialization_) |
171 DoPostCommitInitialization(); | 168 DoPostCommitInitialization(); |
172 } | 169 } |
173 void DoPostCommitInitialization(); | 170 void DoPostCommitInitialization(); |
174 | 171 |
175 bool CanHaveTilings() const; | |
176 bool CanHaveTilingWithScale(float contents_scale) const; | 172 bool CanHaveTilingWithScale(float contents_scale) const; |
177 void SanityCheckTilingState() const; | 173 void SanityCheckTilingState() const; |
178 | 174 |
179 virtual void GetDebugBorderProperties( | 175 virtual void GetDebugBorderProperties( |
180 SkColor* color, float* width) const OVERRIDE; | 176 SkColor* color, float* width) const OVERRIDE; |
181 virtual void AsValueInto(base::DictionaryValue* dict) const OVERRIDE; | 177 virtual void AsValueInto(base::DictionaryValue* dict) const OVERRIDE; |
182 | 178 |
183 PictureLayerImpl* twin_layer_; | 179 PictureLayerImpl* twin_layer_; |
184 | 180 |
185 scoped_ptr<PictureLayerTilingSet> tilings_; | 181 scoped_ptr<PictureLayerTilingSet> tilings_; |
(...skipping 29 matching lines...) Expand all Loading... |
215 gfx::Size viewport_size_for_tile_priority_; | 211 gfx::Size viewport_size_for_tile_priority_; |
216 gfx::Transform screen_space_transform_for_tile_priority_; | 212 gfx::Transform screen_space_transform_for_tile_priority_; |
217 | 213 |
218 friend class PictureLayer; | 214 friend class PictureLayer; |
219 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); | 215 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); |
220 }; | 216 }; |
221 | 217 |
222 } // namespace cc | 218 } // namespace cc |
223 | 219 |
224 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 220 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
OLD | NEW |