summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 04:28:31 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-24 04:28:31 +0000
commit0d7a7fc5a059f5d03cf18b9d280fb2a4e50a1a2c (patch)
treeedf35c0c11a6cdbee9ad256d32545805fa82a36c /ui
parentc103435793736f309325a247c098d5781f9d8ac3 (diff)
downloadchromium_src-0d7a7fc5a059f5d03cf18b9d280fb2a4e50a1a2c.zip
chromium_src-0d7a7fc5a059f5d03cf18b9d280fb2a4e50a1a2c.tar.gz
chromium_src-0d7a7fc5a059f5d03cf18b9d280fb2a4e50a1a2c.tar.bz2
Don't use BinaryImageSource for ButtonImageSource
CreateButtonBackground can handle images with different size. Just make sure to use the same scale factor. Remove unnecessary size check. (It's handled in BinaryImageSource and should be indicated by red box) BUG=171725 TEST=manualy tested (see bug) Review URL: https://chromiumcodereview.appspot.com/12040057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178507 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r--ui/gfx/image/image_skia_operations.cc33
1 files changed, 20 insertions, 13 deletions
diff --git a/ui/gfx/image/image_skia_operations.cc b/ui/gfx/image/image_skia_operations.cc
index 94289c45..4b5612e 100644
--- a/ui/gfx/image/image_skia_operations.cc
+++ b/ui/gfx/image/image_skia_operations.cc
@@ -260,30 +260,37 @@ class HSLImageSource : public gfx::ImageSkiaSource {
// ImageSkiaSource which uses SkBitmapOperations::CreateButtonBackground
// to generate image reps for the target image.
-class ButtonImageSource: public BinaryImageSource {
+class ButtonImageSource: public gfx::ImageSkiaSource {
public:
ButtonImageSource(SkColor color,
const ImageSkia& image,
const ImageSkia& mask)
- : BinaryImageSource(image, mask, "ButtonImageSource"),
- color_(color) {
+ : color_(color),
+ image_(image),
+ mask_(mask) {
}
virtual ~ButtonImageSource() {
}
- // BinaryImageSource overrides:
- virtual ImageSkiaRep CreateImageSkiaRep(
- const ImageSkiaRep& first_rep,
- const ImageSkiaRep& second_rep) const OVERRIDE {
- return ImageSkiaRep(
+ // gfx::ImageSkiaSource overrides:
+ virtual ImageSkiaRep GetImageForScale(ui::ScaleFactor scale_factor) OVERRIDE {
+ ImageSkiaRep image_rep = image_.GetRepresentation(scale_factor);
+ ImageSkiaRep mask_rep = mask_.GetRepresentation(scale_factor);
+ if (image_rep.scale_factor() != mask_rep.scale_factor()) {
+ image_rep = image_.GetRepresentation(ui::SCALE_FACTOR_100P);
+ mask_rep = mask_.GetRepresentation(ui::SCALE_FACTOR_100P);
+ }
+ return gfx::ImageSkiaRep(
SkBitmapOperations::CreateButtonBackground(color_,
- first_rep.sk_bitmap(), second_rep.sk_bitmap()),
- first_rep.scale_factor());
+ image_rep.sk_bitmap(), mask_rep.sk_bitmap()),
+ image_rep.scale_factor());
}
private:
const SkColor color_;
+ const ImageSkia image_;
+ const ImageSkia mask_;
DISALLOW_COPY_AND_ASSIGN(ButtonImageSource);
};
@@ -426,7 +433,7 @@ class RotatedSource : public ImageSkiaSource {
ImageSkia ImageSkiaOperations::CreateBlendedImage(const ImageSkia& first,
const ImageSkia& second,
double alpha) {
- if (first.isNull() || second.isNull() || first.size() != second.size())
+ if (first.isNull() || second.isNull())
return ImageSkia();
return ImageSkia(new BlendingImageSource(first, second, alpha), first.size());
@@ -454,7 +461,7 @@ ImageSkia ImageSkiaOperations::CreateTransparentImage(const ImageSkia& image,
// static
ImageSkia ImageSkiaOperations::CreateMaskedImage(const ImageSkia& rgb,
const ImageSkia& alpha) {
- if (rgb.isNull() || alpha.isNull() || rgb.size() != alpha.size())
+ if (rgb.isNull() || alpha.isNull())
return ImageSkia();
return ImageSkia(new MaskedImageSource(rgb, alpha), rgb.size());
@@ -485,7 +492,7 @@ ImageSkia ImageSkiaOperations::CreateHSLShiftedImage(
ImageSkia ImageSkiaOperations::CreateButtonBackground(SkColor color,
const ImageSkia& image,
const ImageSkia& mask) {
- if (image.isNull() || mask.isNull() || image.size() != mask.size())
+ if (image.isNull() || mask.isNull())
return ImageSkia();
return ImageSkia(new ButtonImageSource(color, image, mask), mask.size());