Chromium Code Reviews| Index: cc/raster/image_hijack_canvas.cc |
| diff --git a/cc/raster/image_hijack_canvas.cc b/cc/raster/image_hijack_canvas.cc |
| index ea03dfbf6364419dfee5209518ce7af6576e7ee4..81aea230d015039616bf8d21a7cbefe564be4eee 100644 |
| --- a/cc/raster/image_hijack_canvas.cc |
| +++ b/cc/raster/image_hijack_canvas.cc |
| @@ -13,6 +13,9 @@ |
| namespace cc { |
| namespace { |
| +// Using a single id for images captured using the hijack canvas. |
| +PaintImage::Id s_canvas_paint_image_id = PaintImage::GetNextId(); |
|
vmpstr
2017/05/16 17:43:27
My concern is just initializing globals using func
Khushal
2017/05/16 21:29:12
Oh, I'm sorry. Forgot to remove this. Its not nece
|
| + |
| SkIRect RoundOutRect(const SkRect& rect) { |
| SkIRect result; |
| rect.roundOut(&result); |
| @@ -22,13 +25,15 @@ SkIRect RoundOutRect(const SkRect& rect) { |
| class ScopedDecodedImageLock { |
| public: |
| ScopedDecodedImageLock(ImageDecodeCache* image_decode_cache, |
| - sk_sp<const SkImage> image, |
| + sk_sp<SkImage> image, |
| const SkRect& src_rect, |
| const SkMatrix& matrix, |
| const SkPaint* paint, |
| const gfx::ColorSpace& target_color_space) |
| : image_decode_cache_(image_decode_cache), |
| - draw_image_(std::move(image), |
| + // TODO(khushalsagar): Using the wrong id should not be necessary once |
| + // the hijack canvas is eliminated. |
| + draw_image_(PaintImage(PaintImage::kWrongStableId, std::move(image)), |
| RoundOutRect(src_rect), |
| paint ? paint->getFilterQuality() : kNone_SkFilterQuality, |
| matrix, |
| @@ -133,7 +138,7 @@ const SkImage* GetImageInPaint(const SkPaint& paint) { |
| ImageHijackCanvas::ImageHijackCanvas(int width, |
| int height, |
| ImageDecodeCache* image_decode_cache, |
| - const ImageIdFlatSet* images_to_skip, |
| + const SkImageIdFlatSet* images_to_skip, |
| const gfx::ColorSpace& target_color_space) |
| : SkNWayCanvas(width, height), |
| image_decode_cache_(image_decode_cache), |
| @@ -173,7 +178,7 @@ void ImageHijackCanvas::onDrawImage(const SkImage* image, |
| SkMatrix ctm = getTotalMatrix(); |
| ScopedDecodedImageLock scoped_lock( |
| - image_decode_cache_, sk_ref_sp(image), |
| + image_decode_cache_, sk_ref_sp(const_cast<SkImage*>(image)), |
| SkRect::MakeIWH(image->width(), image->height()), ctm, paint, |
| target_color_space_); |
| const DecodedDrawImage& decoded_image = scoped_lock.decoded_image(); |
| @@ -223,7 +228,8 @@ void ImageHijackCanvas::onDrawImageRect(const SkImage* image, |
| matrix.setRectToRect(*src, dst, SkMatrix::kFill_ScaleToFit); |
| matrix.postConcat(getTotalMatrix()); |
| - ScopedDecodedImageLock scoped_lock(image_decode_cache_, sk_ref_sp(image), |
| + ScopedDecodedImageLock scoped_lock(image_decode_cache_, |
| + sk_ref_sp(const_cast<SkImage*>(image)), |
| *src, matrix, paint, target_color_space_); |
| const DecodedDrawImage& decoded_image = scoped_lock.decoded_image(); |
| if (!decoded_image.image()) |