| 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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 AppendQuadsData* append_quads_data) override; | 61 AppendQuadsData* append_quads_data) override; |
| 62 void UpdateTiles(const Occlusion& occlusion_in_content_space, | 62 void UpdateTiles(const Occlusion& occlusion_in_content_space, |
| 63 bool resourceless_software_draw) override; | 63 bool resourceless_software_draw) override; |
| 64 void NotifyTileStateChanged(const Tile* tile) override; | 64 void NotifyTileStateChanged(const Tile* tile) override; |
| 65 void DidBecomeActive() override; | 65 void DidBecomeActive() override; |
| 66 void DidBeginTracing() override; | 66 void DidBeginTracing() override; |
| 67 void ReleaseResources() override; | 67 void ReleaseResources() override; |
| 68 skia::RefPtr<SkPicture> GetPicture() override; | 68 skia::RefPtr<SkPicture> GetPicture() override; |
| 69 | 69 |
| 70 // PictureLayerTilingClient overrides. | 70 // PictureLayerTilingClient overrides. |
| 71 scoped_refptr<Tile> CreateTile(PictureLayerTiling* tiling, | 71 scoped_refptr<Tile> CreateTile(float contents_scale, |
| 72 const gfx::Rect& content_rect) override; | 72 const gfx::Rect& content_rect) override; |
| 73 gfx::Size CalculateTileSize(const gfx::Size& content_bounds) const override; | 73 gfx::Size CalculateTileSize(const gfx::Size& content_bounds) const override; |
| 74 const Region* GetPendingInvalidation() override; | 74 const Region* GetPendingInvalidation() override; |
| 75 const PictureLayerTiling* GetPendingOrActiveTwinTiling( | 75 const PictureLayerTiling* GetPendingOrActiveTwinTiling( |
| 76 const PictureLayerTiling* tiling) const override; | 76 const PictureLayerTiling* tiling) const override; |
| 77 PictureLayerTiling* GetRecycledTwinTiling( | 77 PictureLayerTiling* GetRecycledTwinTiling( |
| 78 const PictureLayerTiling* tiling) override; | 78 const PictureLayerTiling* tiling) override; |
| 79 TilePriority::PriorityBin GetMaxTilePriorityBin() const override; | 79 TilePriority::PriorityBin GetMaxTilePriorityBin() const override; |
| 80 WhichTree GetTree() const override; | 80 WhichTree GetTree() const override; |
| 81 bool RequiresHighResToDraw() const override; | 81 bool RequiresHighResToDraw() const override; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 98 | 98 |
| 99 // Functions used by tile manager. | 99 // Functions used by tile manager. |
| 100 PictureLayerImpl* GetPendingOrActiveTwinLayer() const; | 100 PictureLayerImpl* GetPendingOrActiveTwinLayer() const; |
| 101 bool IsOnActiveOrPendingTree() const; | 101 bool IsOnActiveOrPendingTree() const; |
| 102 // Virtual for testing. | 102 // Virtual for testing. |
| 103 virtual bool HasValidTilePriorities() const; | 103 virtual bool HasValidTilePriorities() const; |
| 104 bool AllTilesRequiredForActivationAreReadyToDraw() const; | 104 bool AllTilesRequiredForActivationAreReadyToDraw() const; |
| 105 bool AllTilesRequiredForDrawAreReadyToDraw() const; | 105 bool AllTilesRequiredForDrawAreReadyToDraw() const; |
| 106 | 106 |
| 107 // Used for benchmarking | 107 // Used for benchmarking |
| 108 const RasterSource* GetRasterSource() const { return raster_source_.get(); } | 108 RasterSource* GetRasterSource() const { return raster_source_.get(); } |
| 109 | 109 |
| 110 protected: | 110 protected: |
| 111 friend class LayerRasterTileIterator; | 111 friend class LayerRasterTileIterator; |
| 112 using TileRequirementCheck = bool (PictureLayerTiling::*)(const Tile*) const; | 112 using TileRequirementCheck = bool (PictureLayerTiling::*)(const Tile*) const; |
| 113 | 113 |
| 114 PictureLayerImpl(LayerTreeImpl* tree_impl, int id, bool is_mask); | 114 PictureLayerImpl(LayerTreeImpl* tree_impl, int id, bool is_mask); |
| 115 PictureLayerTiling* AddTiling(float contents_scale); | 115 PictureLayerTiling* AddTiling(float contents_scale); |
| 116 void RemoveAllTilings(); | 116 void RemoveAllTilings(); |
| 117 void AddTilingsForRasterScale(); | 117 void AddTilingsForRasterScale(); |
| 118 void UpdateTilePriorities(const Occlusion& occlusion_in_content_space); | 118 void UpdateTilePriorities(const Occlusion& occlusion_in_content_space); |
| 119 virtual bool ShouldAdjustRasterScale() const; | 119 virtual bool ShouldAdjustRasterScale() const; |
| 120 virtual void RecalculateRasterScales(); | 120 virtual void RecalculateRasterScales(); |
| 121 void CleanUpTilingsOnActiveLayer( | 121 void CleanUpTilingsOnActiveLayer( |
| 122 std::vector<PictureLayerTiling*> used_tilings); | 122 std::vector<PictureLayerTiling*> used_tilings); |
| 123 float MinimumContentsScale() const; | 123 float MinimumContentsScale() const; |
| 124 float MaximumContentsScale() const; |
| 124 void ResetRasterScale(); | 125 void ResetRasterScale(); |
| 125 gfx::Rect GetViewportForTilePriorityInContentSpace() const; | 126 gfx::Rect GetViewportForTilePriorityInContentSpace() const; |
| 126 PictureLayerImpl* GetRecycledTwinLayer() const; | 127 PictureLayerImpl* GetRecycledTwinLayer() const; |
| 127 | 128 |
| 128 bool CanHaveTilingWithScale(float contents_scale) const; | |
| 129 void SanityCheckTilingState() const; | 129 void SanityCheckTilingState() const; |
| 130 // Checks if all tiles required for a certain action (e.g. activation) are | 130 // Checks if all tiles required for a certain action (e.g. activation) are |
| 131 // ready to draw. is_tile_required_callback gets called on all candidate | 131 // ready to draw. is_tile_required_callback gets called on all candidate |
| 132 // tiles and returns true if the tile is required for the action. | 132 // tiles and returns true if the tile is required for the action. |
| 133 bool AllTilesRequiredAreReadyToDraw( | 133 bool AllTilesRequiredAreReadyToDraw( |
| 134 TileRequirementCheck is_tile_required_callback) const; | 134 TileRequirementCheck is_tile_required_callback) const; |
| 135 | 135 |
| 136 bool ShouldAdjustRasterScaleDuringScaleAnimations() const; | 136 bool ShouldAdjustRasterScaleDuringScaleAnimations() const; |
| 137 | 137 |
| 138 void GetDebugBorderProperties(SkColor* color, float* width) const override; | 138 void GetDebugBorderProperties(SkColor* color, float* width) const override; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 // from regular draws. Save a copy of the required draw properties of the last | 177 // from regular draws. Save a copy of the required draw properties of the last |
| 178 // frame that has a valid viewport for prioritizing tiles. | 178 // frame that has a valid viewport for prioritizing tiles. |
| 179 gfx::Rect visible_rect_for_tile_priority_; | 179 gfx::Rect visible_rect_for_tile_priority_; |
| 180 | 180 |
| 181 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); | 181 DISALLOW_COPY_AND_ASSIGN(PictureLayerImpl); |
| 182 }; | 182 }; |
| 183 | 183 |
| 184 } // namespace cc | 184 } // namespace cc |
| 185 | 185 |
| 186 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ | 186 #endif // CC_LAYERS_PICTURE_LAYER_IMPL_H_ |
| OLD | NEW |