Index: cc/tiles/checker_image_tracker.h |
diff --git a/cc/tiles/checker_image_tracker.h b/cc/tiles/checker_image_tracker.h |
index 9f64d8d3f06232b30e79f7f2ce2ec6084a7720ee..689b672d62526ffa7fc999a4e7b9d9197a25d1d2 100644 |
--- a/cc/tiles/checker_image_tracker.h |
+++ b/cc/tiles/checker_image_tracker.h |
@@ -40,7 +40,7 @@ class CC_EXPORT CheckerImageTracker { |
// Returns true if the decode for |image| will be deferred to the image decode |
// service and it should be be skipped during raster. |
- bool ShouldCheckerImage(const PaintImage& image, WhichTree tree); |
+ bool ShouldCheckerImage(const DrawImage& image, WhichTree tree); |
using ImageDecodeQueue = std::vector<PaintImage>; |
void ScheduleImageDecodeQueue(ImageDecodeQueue image_decode_queue); |
@@ -71,6 +71,17 @@ class CC_EXPORT CheckerImageTracker { |
SYNC_PERMANENT, |
}; |
+ // Contains the information to construct a DrawImage from PaintImage when |
+ // queuing the image decode. |
+ struct DecodeState { |
+ DecodeState(); |
+ |
+ DecodePolicy policy = DecodePolicy::SYNC_PERMANENT; |
+ SkFilterQuality filter_quality = kNone_SkFilterQuality; |
+ SkSize scale; |
ericrk
2017/06/07 21:01:57
nit: can you just do:
SkSize scale = SkSize::Make
Khushal
2017/06/07 23:21:33
I thought it would, but I guess not.
|
+ gfx::ColorSpace color_space; |
+ }; |
+ |
// Wrapper to unlock an image decode requested from the ImageController on |
// destruction. |
class ScopedDecodeHolder { |
@@ -94,6 +105,9 @@ class CC_EXPORT CheckerImageTracker { |
// Called when the next request in the |image_decode_queue_| should be |
// scheduled with the image decode service. |
void ScheduleNextImageDecode(); |
+ void UpdateDecodeState(const DrawImage& draw_image, |
+ PaintImage::Id paint_image_id, |
+ DecodeState* decode_state); |
ImageController* image_controller_; |
CheckerImageTrackerClient* client_; |
@@ -116,7 +130,7 @@ class CC_EXPORT CheckerImageTracker { |
base::Optional<PaintImage> outstanding_image_decode_; |
// A map of ImageId to its DecodePolicy. |
- std::unordered_map<PaintImage::Id, DecodePolicy> image_async_decode_state_; |
+ std::unordered_map<PaintImage::Id, DecodeState> image_async_decode_state_; |
// A map of image id to image decode request id for images to be unlocked. |
std::unordered_map<PaintImage::Id, std::unique_ptr<ScopedDecodeHolder>> |