| 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 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) | 90 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) |
| 91 OVERRIDE; | 91 OVERRIDE; |
| 92 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; | 92 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; |
| 93 virtual void AppendQuads(QuadSink* quad_sink, | 93 virtual void AppendQuads(QuadSink* quad_sink, |
| 94 AppendQuadsData* append_quads_data) OVERRIDE; | 94 AppendQuadsData* append_quads_data) OVERRIDE; |
| 95 virtual void UpdateTilePriorities() OVERRIDE; | 95 virtual void UpdateTilePriorities() OVERRIDE; |
| 96 virtual void NotifyTileInitialized(const Tile* tile) OVERRIDE; | 96 virtual void NotifyTileInitialized(const Tile* tile) OVERRIDE; |
| 97 virtual void DidBecomeActive() OVERRIDE; | 97 virtual void DidBecomeActive() OVERRIDE; |
| 98 virtual void DidBeginTracing() OVERRIDE; | 98 virtual void DidBeginTracing() OVERRIDE; |
| 99 virtual void ReleaseResources() OVERRIDE; | 99 virtual void ReleaseResources() OVERRIDE; |
| 100 virtual void CalculateContentsScale(float ideal_contents_scale, | |
| 101 float device_scale_factor, | |
| 102 float page_scale_factor, | |
| 103 float maximum_animation_contents_scale, | |
| 104 bool animating_transform_to_screen, | |
| 105 float* contents_scale_x, | |
| 106 float* contents_scale_y, | |
| 107 gfx::Size* content_bounds) OVERRIDE; | |
| 108 virtual skia::RefPtr<SkPicture> GetPicture() OVERRIDE; | 100 virtual skia::RefPtr<SkPicture> GetPicture() OVERRIDE; |
| 109 | 101 |
| 110 // PictureLayerTilingClient overrides. | 102 // PictureLayerTilingClient overrides. |
| 111 virtual scoped_refptr<Tile> CreateTile( | 103 virtual scoped_refptr<Tile> CreateTile( |
| 112 PictureLayerTiling* tiling, | 104 PictureLayerTiling* tiling, |
| 113 const gfx::Rect& content_rect) OVERRIDE; | 105 const gfx::Rect& content_rect) OVERRIDE; |
| 114 virtual void UpdatePile(Tile* tile) OVERRIDE; | 106 virtual void UpdatePile(Tile* tile) OVERRIDE; |
| 115 virtual gfx::Size CalculateTileSize( | 107 virtual gfx::Size CalculateTileSize( |
| 116 const gfx::Size& content_bounds) const OVERRIDE; | 108 const gfx::Size& content_bounds) const OVERRIDE; |
| 117 virtual const Region* GetInvalidation() OVERRIDE; | 109 virtual const Region* GetInvalidation() OVERRIDE; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 135 bool use_gpu_rasterization() const { | 127 bool use_gpu_rasterization() const { |
| 136 return layer_tree_impl()->use_gpu_rasterization(); | 128 return layer_tree_impl()->use_gpu_rasterization(); |
| 137 } | 129 } |
| 138 | 130 |
| 139 // Functions used by tile manager. | 131 // Functions used by tile manager. |
| 140 void DidUnregisterLayer(); | 132 void DidUnregisterLayer(); |
| 141 PictureLayerImpl* GetTwinLayer() { return twin_layer_; } | 133 PictureLayerImpl* GetTwinLayer() { return twin_layer_; } |
| 142 WhichTree GetTree() const; | 134 WhichTree GetTree() const; |
| 143 bool IsOnActiveOrPendingTree() const; | 135 bool IsOnActiveOrPendingTree() const; |
| 144 | 136 |
| 137 float MaximumTilingContentScale() const; |
| 138 |
| 145 protected: | 139 protected: |
| 146 friend class LayerRasterTileIterator; | 140 friend class LayerRasterTileIterator; |
| 147 | 141 |
| 148 PictureLayerImpl(LayerTreeImpl* tree_impl, int id); | 142 PictureLayerImpl(LayerTreeImpl* tree_impl, int id); |
| 149 PictureLayerTiling* AddTiling(float contents_scale); | 143 PictureLayerTiling* AddTiling(float contents_scale); |
| 150 void RemoveTiling(float contents_scale); | 144 void RemoveTiling(float contents_scale); |
| 151 void RemoveAllTilings(); | 145 void RemoveAllTilings(); |
| 152 void SyncFromActiveLayer(const PictureLayerImpl* other); | 146 void SyncFromActiveLayer(const PictureLayerImpl* other); |
| 153 void ManageTilings(bool animating_transform_to_screen, | 147 void ManageTilings(bool animating_transform_to_screen, |
| 154 float maximum_animation_contents_scale); | 148 float maximum_animation_contents_scale); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 176 void DoPostCommitInitializationIfNeeded() { | 170 void DoPostCommitInitializationIfNeeded() { |
| 177 if (needs_post_commit_initialization_) | 171 if (needs_post_commit_initialization_) |
| 178 DoPostCommitInitialization(); | 172 DoPostCommitInitialization(); |
| 179 } | 173 } |
| 180 void DoPostCommitInitialization(); | 174 void DoPostCommitInitialization(); |
| 181 | 175 |
| 182 bool CanHaveTilings() const; | 176 bool CanHaveTilings() const; |
| 183 bool CanHaveTilingWithScale(float contents_scale) const; | 177 bool CanHaveTilingWithScale(float contents_scale) const; |
| 184 void SanityCheckTilingState() const; | 178 void SanityCheckTilingState() const; |
| 185 | 179 |
| 180 void CalculateIdealScales(); |
| 181 |
| 186 virtual void GetDebugBorderProperties( | 182 virtual void GetDebugBorderProperties( |
| 187 SkColor* color, float* width) const OVERRIDE; | 183 SkColor* color, float* width) const OVERRIDE; |
| 188 virtual void AsValueInto(base::DictionaryValue* dict) const OVERRIDE; | 184 virtual void AsValueInto(base::DictionaryValue* dict) const OVERRIDE; |
| 189 | 185 |
| 190 PictureLayerImpl* twin_layer_; | 186 PictureLayerImpl* twin_layer_; |
| 191 | 187 |
| 192 scoped_ptr<PictureLayerTilingSet> tilings_; | 188 scoped_ptr<PictureLayerTilingSet> tilings_; |
| 193 scoped_refptr<PicturePileImpl> pile_; | 189 scoped_refptr<PicturePileImpl> pile_; |
| 194 Region invalidation_; | 190 Region invalidation_; |
| 195 | 191 |
| 196 bool is_mask_; | 192 bool is_mask_; |
| 197 | 193 |
| 198 float ideal_page_scale_; | 194 float ideal_page_scale_; |
| 199 float ideal_device_scale_; | 195 float ideal_device_scale_; |
| 200 float ideal_source_scale_; | 196 float ideal_source_scale_; |
| 201 float ideal_contents_scale_; | 197 float ideal_contents_scale_; |
| 202 | 198 |
| 203 float raster_page_scale_; | 199 float raster_page_scale_; |
| 204 float raster_device_scale_; | 200 float raster_device_scale_; |
| 205 float raster_source_scale_; | 201 float raster_source_scale_; |
| 206 float raster_contents_scale_; | 202 float raster_contents_scale_; |
| 207 float low_res_raster_contents_scale_; | 203 float low_res_raster_contents_scale_; |
| 208 | 204 |
| 209 bool raster_source_scale_is_fixed_; | 205 bool raster_source_scale_is_fixed_; |
| 210 bool was_animating_transform_to_screen_; | 206 bool was_animating_transform_to_screen_; |
| 211 bool is_using_lcd_text_; | 207 bool is_using_lcd_text_; |
| 212 bool needs_post_commit_initialization_; | 208 bool needs_post_commit_initialization_; |
| 213 // A sanity state check to make sure UpdateTilePriorities only gets called | |
| 214 // after a CalculateContentsScale/ManageTilings. | |
| 215 bool should_update_tile_priorities_; | |
| 216 bool should_use_low_res_tiling_; | 209 bool should_use_low_res_tiling_; |
| 217 | 210 |
| 218 bool layer_needs_to_register_itself_; | 211 bool layer_needs_to_register_itself_; |
| 219 | 212 |
| 220 // Save a copy of the visible rect and viewport size of the last frame that | 213 // Save a copy of the visible rect and viewport size of the last frame that |
| 221 // has a valid viewport for prioritizing tiles. | 214 // has a valid viewport for prioritizing tiles. |
| 222 gfx::Rect visible_rect_for_tile_priority_; | 215 gfx::Rect visible_rect_for_tile_priority_; |
| 223 gfx::Size viewport_size_for_tile_priority_; | 216 gfx::Size viewport_size_for_tile_priority_; |
| 224 gfx::Transform screen_space_transform_for_tile_priority_; | 217 gfx::Transform screen_space_transform_for_tile_priority_; |
| 225 | 218 |
| 226 friend class PictureLayer; | 219 friend class PictureLayer; |
| 227 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); | 220 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); |
| 228 }; | 221 }; |
| 229 | 222 |
| 230 } // namespace cc | 223 } // namespace cc |
| 231 | 224 |
| 232 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 225 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
| OLD | NEW |