Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2494)

Unified Diff: chrome/browser/ui/app_list/extension_app_item.cc

Issue 2760133002: ui: Remove a bunch of uses of gfx::Canvas::ExtractImageRep() (Closed)
Patch Set: canvasbounds: ashnit Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..3d9bdef3c3c1e3e87924e98080273142e588cff4 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"
@@ -83,20 +84,21 @@ class RoundedCornersImageSource : public gfx::CanvasImageSource {
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;
+ 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);
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_;
« no previous file with comments | « ash/common/frame/caption_buttons/frame_caption_button.cc ('k') | chrome/browser/ui/webui/app_launcher_login_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698