Chromium Code Reviews| Index: cc/tiles/tile.h |
| diff --git a/cc/tiles/tile.h b/cc/tiles/tile.h |
| index 16d37d1491d88a5f9b7938eada47ed21ea32d2d2..83414f54028b51081998a1e4f25e23ed44efe052 100644 |
| --- a/cc/tiles/tile.h |
| +++ b/cc/tiles/tile.h |
| @@ -10,6 +10,7 @@ |
| #include "base/macros.h" |
| #include "base/memory/ref_counted.h" |
| +#include "cc/paint/draw_image.h" |
| #include "cc/raster/tile_task.h" |
| #include "cc/tiles/tile_draw_info.h" |
| #include "ui/gfx/geometry/rect.h" |
| @@ -113,6 +114,29 @@ class CC_EXPORT Tile { |
| return is_solid_color_analysis_performed_; |
| } |
| + void SetImageAnalysisResult( |
| + std::vector<DrawImage> images_to_decode_before_raster, |
| + std::vector<sk_sp<const SkImage>> images_to_checker); |
| + bool is_image_analysis_performed() const { |
| + return is_image_analysis_performed_; |
| + } |
| + const std::vector<DrawImage>& images_to_decode_before_raster() const { |
| + return images_to_decode_before_raster_; |
| + } |
| + const std::vector<sk_sp<const SkImage>>& images_to_checker() const { |
| + return images_to_checker_; |
| + } |
| + |
| + bool set_raster_task_scheduled_with_checker_images(bool has_checker_images) { |
| + bool previous_raster_task_scheduled_with_checker_images = |
| + raster_task_scheduled_with_checker_images_; |
| + raster_task_scheduled_with_checker_images_ = has_checker_images; |
| + return previous_raster_task_scheduled_with_checker_images; |
| + } |
| + bool raster_task_scheduled_with_checker_images() const { |
| + return raster_task_scheduled_with_checker_images_; |
| + } |
| + |
| const PictureLayerTiling* tiling() const { return tiling_; } |
| void set_tiling(const PictureLayerTiling* tiling) { tiling_ = tiling; } |
| @@ -134,6 +158,18 @@ class CC_EXPORT Tile { |
| const gfx::Rect enclosing_layer_rect_; |
| const float contents_scale_; |
| + // Image analysis is used partitions the images in a tile into 2 sets: |
| + // 1) The images for which the decode must be available *before* the |
| + // rasterization of a tile can be started. |
| + // 2) The images which are checkered, i.e., will be skipped when rasterizing |
| + // this tile. |
| + // Note that these sets are only valid for tiles that are considered for |
| + // rasterization with images. For instance, for low resolution tiles, all |
| + // images are skipped. |
| + bool is_image_analysis_performed_ = false; |
| + std::vector<DrawImage> images_to_decode_before_raster_; |
|
vmpstr
2017/04/18 00:20:00
Don't put this here, because it might be very memo
|
| + std::vector<sk_sp<const SkImage>> images_to_checker_; |
| + |
| TileDrawInfo draw_info_; |
| const int layer_id_; |
| @@ -154,6 +190,10 @@ class CC_EXPORT Tile { |
| Id invalidated_id_; |
| unsigned scheduled_priority_; |
| + |
| + // Set to true if there is a raster task scheduled for this tile that will |
| + // rasterize a resource with checker images. |
| + bool raster_task_scheduled_with_checker_images_ = false; |
| scoped_refptr<TileTask> raster_task_; |
| DISALLOW_COPY_AND_ASSIGN(Tile); |