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

Unified Diff: ui/gfx/image/image_skia_operations.cc

Issue 10827191: Convert extension action icons code to use ImageSkia instead of SkBitmap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove includes we don't need anymore Created 8 years, 4 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: ui/gfx/image/image_skia_operations.cc
diff --git a/ui/gfx/image/image_skia_operations.cc b/ui/gfx/image/image_skia_operations.cc
index c4bbce4ac6fa482259dd75f71423fc7e8a427470..97da1bf5a7320d0a14f9634a10f4ae40396c20e9 100644
--- a/ui/gfx/image/image_skia_operations.cc
+++ b/ui/gfx/image/image_skia_operations.cc
@@ -10,6 +10,8 @@
#include "skia/ext/platform_canvas.h"
#include "ui/base/layout.h"
#include "ui/base/ui_base_switches.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/image/canvas_image_source.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_rep.h"
#include "ui/gfx/image/image_skia_source.h"
@@ -89,6 +91,33 @@ class BlendingImageSource : public gfx::ImageSkiaSource {
DISALLOW_COPY_AND_ASSIGN(BlendingImageSource);
};
+class SuperimposedImageSource : public gfx::CanvasImageSource {
+ public:
+ SuperimposedImageSource(const gfx::ImageSkia& first,
+ const gfx::ImageSkia& second)
+ : gfx::CanvasImageSource(first.size(), false /* is opaque */),
+ first_(first),
+ second_(second) {
+ }
+
+ virtual ~SuperimposedImageSource() {}
+
+ // gfx::CanvasImageSource override.
+ virtual void Draw(gfx::Canvas* canvas) OVERRIDE {
+ canvas->DrawImageInt(first_, 0, 0, SkPaint());
Jeffrey Yasskin 2012/08/09 21:39:04 There's a DrawImage overload that you don't have t
tbarzic 2012/08/10 06:24:08 Done.
+ canvas->DrawImageInt(second_,
+ (first_.width() - second_.width()) / 2,
+ (first_.height() - second_.height()) / 2,
+ SkPaint());
+ }
+
+ private:
+ const gfx::ImageSkia first_;
+ const gfx::ImageSkia second_;
+
+ DISALLOW_COPY_AND_ASSIGN(SuperimposedImageSource);
+};
+
class MaskedImageSource : public gfx::ImageSkiaSource {
public:
MaskedImageSource(const ImageSkia& rgb, const ImageSkia& alpha)
@@ -322,6 +351,13 @@ ImageSkia ImageSkiaOperations::CreateBlendedImage(const ImageSkia& first,
}
// static
+ImageSkia ImageSkiaOperations::CreateSuperimposedImage(
+ const ImageSkia& first,
+ const ImageSkia& second) {
+ return ImageSkia(new SuperimposedImageSource(first, second), first.size());
+}
+
+// static
ImageSkia ImageSkiaOperations::CreateMaskedImage(const ImageSkia& rgb,
const ImageSkia& alpha) {
return ImageSkia(new MaskedImageSource(rgb, alpha), rgb.size());
« ui/gfx/image/image_skia_operations.h ('K') | « ui/gfx/image/image_skia_operations.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698