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 <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 const gfx::Size& content_bounds) const override; | 126 const gfx::Size& content_bounds) const override; |
127 virtual const Region* GetInvalidation() override; | 127 virtual const Region* GetInvalidation() override; |
128 virtual const PictureLayerTiling* GetTwinTiling( | 128 virtual const PictureLayerTiling* GetTwinTiling( |
129 const PictureLayerTiling* tiling) const override; | 129 const PictureLayerTiling* tiling) const override; |
130 virtual PictureLayerTiling* GetRecycledTwinTiling( | 130 virtual PictureLayerTiling* GetRecycledTwinTiling( |
131 const PictureLayerTiling* tiling) override; | 131 const PictureLayerTiling* tiling) override; |
132 virtual size_t GetMaxTilesForInterestArea() const override; | 132 virtual size_t GetMaxTilesForInterestArea() const override; |
133 virtual float GetSkewportTargetTimeInSeconds() const override; | 133 virtual float GetSkewportTargetTimeInSeconds() const override; |
134 virtual int GetSkewportExtrapolationLimitInContentPixels() const override; | 134 virtual int GetSkewportExtrapolationLimitInContentPixels() const override; |
135 virtual WhichTree GetTree() const override; | 135 virtual WhichTree GetTree() const override; |
| 136 virtual bool RequiresHighResToDraw() const override; |
136 | 137 |
137 // PushPropertiesTo active tree => pending tree. | 138 // PushPropertiesTo active tree => pending tree. |
138 void SyncTiling(const PictureLayerTiling* tiling); | 139 void SyncTiling(const PictureLayerTiling* tiling); |
139 | 140 |
140 // Mask-related functions. | 141 // Mask-related functions. |
141 virtual ResourceProvider::ResourceId ContentsResourceId() const override; | 142 virtual ResourceProvider::ResourceId ContentsResourceId() const override; |
142 | 143 |
143 virtual size_t GPUMemoryUsageInBytes() const override; | 144 virtual size_t GPUMemoryUsageInBytes() const override; |
144 | 145 |
145 virtual void RunMicroBenchmark(MicroBenchmarkImpl* benchmark) override; | 146 virtual void RunMicroBenchmark(MicroBenchmarkImpl* benchmark) override; |
(...skipping 15 matching lines...) Expand all Loading... |
161 void SyncFromActiveLayer(const PictureLayerImpl* other); | 162 void SyncFromActiveLayer(const PictureLayerImpl* other); |
162 void AddTilingsForRasterScale(); | 163 void AddTilingsForRasterScale(); |
163 void UpdateTilePriorities(const Occlusion& occlusion_in_content_space); | 164 void UpdateTilePriorities(const Occlusion& occlusion_in_content_space); |
164 virtual bool ShouldAdjustRasterScale() const; | 165 virtual bool ShouldAdjustRasterScale() const; |
165 virtual void RecalculateRasterScales(); | 166 virtual void RecalculateRasterScales(); |
166 void CleanUpTilingsOnActiveLayer( | 167 void CleanUpTilingsOnActiveLayer( |
167 std::vector<PictureLayerTiling*> used_tilings); | 168 std::vector<PictureLayerTiling*> used_tilings); |
168 float MinimumContentsScale() const; | 169 float MinimumContentsScale() const; |
169 float SnappedContentsScale(float new_contents_scale); | 170 float SnappedContentsScale(float new_contents_scale); |
170 void ResetRasterScale(); | 171 void ResetRasterScale(); |
171 void MarkVisibleResourcesAsRequired() const; | |
172 bool MarkVisibleTilesAsRequired( | |
173 PictureLayerTiling* tiling, | |
174 const PictureLayerTiling* optional_twin_tiling, | |
175 const gfx::Rect& rect, | |
176 const Region& missing_region) const; | |
177 gfx::Rect GetViewportForTilePriorityInContentSpace() const; | 172 gfx::Rect GetViewportForTilePriorityInContentSpace() const; |
178 PictureLayerImpl* GetRecycledTwinLayer(); | 173 PictureLayerImpl* GetRecycledTwinLayer(); |
179 | 174 |
180 void DoPostCommitInitializationIfNeeded() { | 175 void DoPostCommitInitializationIfNeeded() { |
181 if (needs_post_commit_initialization_) | 176 if (needs_post_commit_initialization_) |
182 DoPostCommitInitialization(); | 177 DoPostCommitInitialization(); |
183 } | 178 } |
184 void DoPostCommitInitialization(); | 179 void DoPostCommitInitialization(); |
185 | 180 |
186 bool CanHaveTilings() const; | 181 bool CanHaveTilings() const; |
(...skipping 27 matching lines...) Expand all Loading... |
214 float raster_source_scale_; | 209 float raster_source_scale_; |
215 float raster_contents_scale_; | 210 float raster_contents_scale_; |
216 float low_res_raster_contents_scale_; | 211 float low_res_raster_contents_scale_; |
217 | 212 |
218 bool raster_source_scale_is_fixed_; | 213 bool raster_source_scale_is_fixed_; |
219 bool was_screen_space_transform_animating_; | 214 bool was_screen_space_transform_animating_; |
220 bool needs_post_commit_initialization_; | 215 bool needs_post_commit_initialization_; |
221 // A sanity state check to make sure UpdateTilePriorities only gets called | 216 // A sanity state check to make sure UpdateTilePriorities only gets called |
222 // after a CalculateContentsScale/ManageTilings. | 217 // after a CalculateContentsScale/ManageTilings. |
223 bool should_update_tile_priorities_; | 218 bool should_update_tile_priorities_; |
| 219 bool only_used_low_res_last_append_quads_; |
224 | 220 |
225 // Any draw properties derived from |transform|, |viewport|, and |clip| | 221 // Any draw properties derived from |transform|, |viewport|, and |clip| |
226 // parameters in LayerTreeHostImpl::SetExternalDrawConstraints are not valid | 222 // parameters in LayerTreeHostImpl::SetExternalDrawConstraints are not valid |
227 // for prioritizing tiles during resourceless software draws. This is because | 223 // for prioritizing tiles during resourceless software draws. This is because |
228 // resourceless software draws can have wildly different transforms/viewports | 224 // resourceless software draws can have wildly different transforms/viewports |
229 // from regular draws. Save a copy of the required draw properties of the last | 225 // from regular draws. Save a copy of the required draw properties of the last |
230 // frame that has a valid viewport for prioritizing tiles. | 226 // frame that has a valid viewport for prioritizing tiles. |
231 gfx::Rect visible_rect_for_tile_priority_; | 227 gfx::Rect visible_rect_for_tile_priority_; |
232 | 228 |
233 friend class PictureLayer; | 229 friend class PictureLayer; |
234 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); | 230 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); |
235 }; | 231 }; |
236 | 232 |
237 } // namespace cc | 233 } // namespace cc |
238 | 234 |
239 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 235 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
OLD | NEW |