Index: cc/paint/discardable_image_map.cc |
diff --git a/cc/paint/discardable_image_map.cc b/cc/paint/discardable_image_map.cc |
index 2daef282d19514d067497f92109c8badcdc05471..d501d472f487752da0d1e05aab6553075365e659 100644 |
--- a/cc/paint/discardable_image_map.cc |
+++ b/cc/paint/discardable_image_map.cc |
@@ -215,10 +215,15 @@ class DiscardableImagesMetadataCanvas : public SkNWayCanvas { |
// raster the picture (using device clip bounds that are outset). |
image_rect.Inset(-1, -1); |
+ // The true target color space will be assigned when it is known, in |
+ // GetDiscardableImagesInRect. |
+ gfx::ColorSpace target_color_space; |
+ |
(*image_id_to_rect_)[image->uniqueID()].Union(image_rect); |
- image_set_->push_back(std::make_pair( |
- DrawImage(std::move(image), src_irect, filter_quality, matrix), |
- image_rect)); |
+ image_set_->push_back( |
+ std::make_pair(DrawImage(std::move(image), src_irect, filter_quality, |
+ matrix, target_color_space), |
+ image_rect)); |
} |
// Currently this function only handles extracting images from SkImageShaders |
@@ -271,11 +276,14 @@ void DiscardableImageMap::EndGeneratingMetadata() { |
void DiscardableImageMap::GetDiscardableImagesInRect( |
const gfx::Rect& rect, |
float contents_scale, |
+ const gfx::ColorSpace& target_color_space, |
std::vector<DrawImage>* images) const { |
std::vector<size_t> indices; |
images_rtree_.Search(rect, &indices); |
- for (size_t index : indices) |
- images->push_back(all_images_[index].first.ApplyScale(contents_scale)); |
+ for (size_t index : indices) { |
+ images->push_back(all_images_[index].first.ApplyScaleAndColorSpace( |
vmpstr
2017/04/04 01:16:43
nit: Can you make this ApplyScale(...).ApplyColorS
ccameron
2017/04/04 06:41:10
Done.
|
+ contents_scale, target_color_space)); |
+ } |
} |
gfx::Rect DiscardableImageMap::GetRectForImage(ImageId image_id) const { |