Chromium Code Reviews| Index: chrome/browser/ui/app_list/extension_app_item.cc |
| diff --git a/chrome/browser/ui/app_list/extension_app_item.cc b/chrome/browser/ui/app_list/extension_app_item.cc |
| index 6c5261efeffa49d6812e5643bb4aa887a410c65d..98c63678b8cec9623c2a2a30815e3b232da1399b 100644 |
| --- a/chrome/browser/ui/app_list/extension_app_item.cc |
| +++ b/chrome/browser/ui/app_list/extension_app_item.cc |
| @@ -32,6 +32,7 @@ |
| #include "ui/gfx/canvas.h" |
| #include "ui/gfx/geometry/rect.h" |
| #include "ui/gfx/image/canvas_image_source.h" |
| +#include "ui/gfx/skia_util.h" |
| #if defined(OS_CHROMEOS) |
| #include "chrome/browser/chromeos/extensions/gfx_utils.h" |
| @@ -81,22 +82,22 @@ class RoundedCornersImageSource : public gfx::CanvasImageSource { |
| // The radius used to round the app icon. |
| const size_t kRoundingRadius = 2; |
| - canvas->DrawImageInt(icon_, 0, 0); |
| - |
| - std::unique_ptr<gfx::Canvas> masking_canvas( |
| - new gfx::Canvas(gfx::Size(icon_.width(), icon_.height()), 1.0f, false)); |
| - DCHECK(masking_canvas); |
| - |
| - cc::PaintFlags opaque_flags; |
| - opaque_flags.setAntiAlias(true); |
| - opaque_flags.setColor(SK_ColorWHITE); |
| - masking_canvas->DrawRoundRect(gfx::Rect(icon_.width(), icon_.height()), |
| - kRoundingRadius, opaque_flags); |
| + SkBitmap mask_bitmap; |
|
Peter Kasting
2017/03/20 22:49:21
Nit: Trivial, but I liked having this block below
danakj
2017/03/21 15:25:56
Sure, done. I liked having all the calls to |canva
|
| + mask_bitmap.allocN32Pixels(icon_.width(), icon_.height(), false); |
| + sk_sp<SkSurface> mask_surface = SkSurface::MakeRasterDirect( |
| + mask_bitmap.info(), mask_bitmap.getPixels(), mask_bitmap.rowBytes()); |
| + mask_surface->getCanvas()->clear(SK_ColorTRANSPARENT); |
| + SkPaint mask_paint; |
| + mask_paint.setAntiAlias(true); |
| + mask_paint.setColor(SK_ColorWHITE); |
| + mask_surface->getCanvas()->drawRoundRect( |
| + gfx::RectToSkRect(gfx::Rect(icon_.width(), icon_.height())), |
| + kRoundingRadius, kRoundingRadius, mask_paint); |
| + canvas->DrawImageInt(icon_, 0, 0); |
| cc::PaintFlags masking_flags; |
| masking_flags.setBlendMode(SkBlendMode::kDstIn); |
| - canvas->DrawImageInt(gfx::ImageSkia(masking_canvas->ExtractImageRep()), 0, |
| - 0, masking_flags); |
| + canvas->sk_canvas()->drawBitmap(mask_bitmap, 0, 0, &masking_flags); |
| } |
| gfx::ImageSkia icon_; |