summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/base/clipboard/clipboard_gtk.cc6
-rw-r--r--ui/base/clipboard/clipboard_mac.mm4
-rw-r--r--ui/base/clipboard/clipboard_win.cc6
-rw-r--r--ui/base/dragdrop/drag_utils.cc2
-rw-r--r--ui/base/native_theme/native_theme_android.cc11
-rw-r--r--ui/base/native_theme/native_theme_base.cc11
-rw-r--r--ui/compositor/layer.cc14
-rw-r--r--ui/compositor/layer_unittest.cc4
-rw-r--r--ui/gfx/canvas.cc78
-rw-r--r--ui/gfx/canvas.h43
-rw-r--r--ui/gfx/canvas_linux.cc6
-rw-r--r--ui/gfx/canvas_skia.cc10
-rw-r--r--ui/gfx/image/canvas_image_source.cc2
-rw-r--r--ui/gfx/image/image.cc6
-rw-r--r--ui/views/controls/glow_hover_controller.cc2
-rw-r--r--ui/views/controls/menu/native_menu_win.cc1
-rw-r--r--ui/views/controls/table/table_view_win.cc10
-rw-r--r--ui/views/controls/tree/tree_view_win.cc6
-rw-r--r--ui/views/widget/native_widget_win.cc3
19 files changed, 117 insertions, 108 deletions
diff --git a/ui/base/clipboard/clipboard_gtk.cc b/ui/base/clipboard/clipboard_gtk.cc
index 6199afa..78eebba 100644
--- a/ui/base/clipboard/clipboard_gtk.cc
+++ b/ui/base/clipboard/clipboard_gtk.cc
@@ -564,16 +564,14 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
return SkBitmap();
gfx::Canvas canvas(gfx::Size(gdk_pixbuf_get_width(pixbuf.get()),
- gdk_pixbuf_get_height(pixbuf.get())),
- ui::SCALE_FACTOR_100P,
- false);
+ gdk_pixbuf_get_height(pixbuf.get())), false);
{
skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
cairo_t* context = scoped_platform_paint.GetPlatformSurface();
gdk_cairo_set_source_pixbuf(context, pixbuf.get(), 0.0, 0.0);
cairo_paint(context);
}
- return canvas.ExtractImageRep().sk_bitmap();
+ return canvas.ExtractBitmap();
}
void Clipboard::ReadCustomData(Buffer buffer,
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index 0367448..7d0bea1 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -349,7 +349,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
int width = [image size].width;
int height = [image size].height;
- gfx::Canvas canvas(gfx::Size(width, height), ui::SCALE_FACTOR_100P, false);
+ gfx::Canvas canvas(gfx::Size(width, height), false);
{
skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
CGContextRef gc = scoped_platform_paint.GetPlatformSurface();
@@ -361,7 +361,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
operation:NSCompositeCopy
fraction:1.0];
}
- return canvas.ExtractImageRep().sk_bitmap();
+ return canvas.ExtractBitmap();
}
void Clipboard::ReadCustomData(Buffer buffer,
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index 6ea0cb1..3fa071f 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -564,9 +564,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
+ bitmap->bmiHeader.biSize + color_table_length * sizeof(RGBQUAD);
gfx::Canvas canvas(gfx::Size(bitmap->bmiHeader.biWidth,
- bitmap->bmiHeader.biHeight),
- ui::SCALE_FACTOR_100P,
- false);
+ bitmap->bmiHeader.biHeight), false);
{
skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
HDC dc = scoped_platform_paint.GetPlatformSurface();
@@ -594,7 +592,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
}
}
- return canvas.ExtractImageRep().sk_bitmap();
+ return canvas.ExtractBitmap();
}
void Clipboard::ReadCustomData(Buffer buffer,
diff --git a/ui/base/dragdrop/drag_utils.cc b/ui/base/dragdrop/drag_utils.cc
index 34f4f93..910fda13 100644
--- a/ui/base/dragdrop/drag_utils.cc
+++ b/ui/base/dragdrop/drag_utils.cc
@@ -102,7 +102,7 @@ void SetDragImageOnDataObject(const gfx::Canvas& canvas,
const gfx::Size& size,
const gfx::Point& cursor_offset,
ui::OSExchangeData* data_object) {
- gfx::ImageSkia image = gfx::ImageSkia(canvas.ExtractImageRep());
+ gfx::ImageSkia image = gfx::ImageSkia(canvas.ExtractImageSkiaRep());
SetDragImageOnDataObject(image, size, cursor_offset, data_object);
}
diff --git a/ui/base/native_theme/native_theme_android.cc b/ui/base/native_theme/native_theme_android.cc
index 79b1067..d507ade 100644
--- a/ui/base/native_theme/native_theme_android.cc
+++ b/ui/base/native_theme/native_theme_android.cc
@@ -8,7 +8,6 @@
#include "base/basictypes.h"
#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
#include "grit/ui_resources.h"
#include "third_party/skia/include/effects/SkGradientShader.h"
#include "ui/base/layout.h"
@@ -671,9 +670,8 @@ void NativeThemeAndroid::DrawImageInt(SkCanvas* sk_canvas,
SkMatrix m = sk_canvas->getTotalMatrix();
ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
SkScalarAbs(m.getScaleX()));
- scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
- sk_canvas, device_scale_factor));
- canvas->DrawImageInt(image, src_x, src_y, src_w, src_h,
+ gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
+ canvas.DrawImageInt(image, src_x, src_y, src_w, src_h,
dest_x, dest_y, dest_w, dest_h, true);
}
@@ -692,9 +690,8 @@ void NativeThemeAndroid::DrawTiledImage(SkCanvas* sk_canvas,
SkMatrix m = sk_canvas->getTotalMatrix();
ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
SkScalarAbs(m.getScaleX()));
- scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
- sk_canvas, device_scale_factor));
- canvas->TileImageInt(image, src_x, src_y, tile_scale_x,
+ gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
+ canvas.TileImageInt(image, src_x, src_y, tile_scale_x,
tile_scale_y, dest_x, dest_y, w, h);
}
diff --git a/ui/base/native_theme/native_theme_base.cc b/ui/base/native_theme/native_theme_base.cc
index 57b0a4e..eab57e0 100644
--- a/ui/base/native_theme/native_theme_base.cc
+++ b/ui/base/native_theme/native_theme_base.cc
@@ -8,7 +8,6 @@
#include "base/command_line.h"
#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
#include "grit/ui_resources.h"
#include "third_party/skia/include/effects/SkGradientShader.h"
#include "ui/base/layout.h"
@@ -1021,9 +1020,8 @@ void NativeThemeBase::DrawImageInt(
SkMatrix m = sk_canvas->getTotalMatrix();
ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
SkScalarAbs(m.getScaleX()));
- scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
- sk_canvas, device_scale_factor));
- canvas->DrawImageInt(image, src_x, src_y, src_w, src_h,
+ gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
+ canvas.DrawImageInt(image, src_x, src_y, src_w, src_h,
dest_x, dest_y, dest_w, dest_h, true);
}
@@ -1036,9 +1034,8 @@ void NativeThemeBase::DrawTiledImage(SkCanvas* sk_canvas,
SkMatrix m = sk_canvas->getTotalMatrix();
ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
SkScalarAbs(m.getScaleX()));
- scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
- sk_canvas, device_scale_factor));
- canvas->TileImageInt(image, src_x, src_y, tile_scale_x,
+ gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
+ canvas.TileImageInt(image, src_x, src_y, tile_scale_x,
tile_scale_y, dest_x, dest_y, w, h);
}
diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
index 6c30d52..a3ae747 100644
--- a/ui/compositor/layer.cc
+++ b/ui/compositor/layer.cc
@@ -488,19 +488,11 @@ void Layer::paintContents(WebKit::WebCanvas* web_canvas,
WebKit::WebRect& opaque) {
#endif
TRACE_EVENT0("ui", "Layer::paintContents");
- scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
- web_canvas, ui::GetScaleFactorFromScale(device_scale_factor_)));
-
- if (scale_content_) {
- canvas->Save();
- canvas->sk_canvas()->scale(SkFloatToScalar(device_scale_factor_),
- SkFloatToScalar(device_scale_factor_));
- }
+ gfx::Canvas canvas(web_canvas,
+ ui::GetScaleFactorFromScale(device_scale_factor_), scale_content_);
if (delegate_)
- delegate_->OnPaintLayer(canvas.get());
- if (scale_content_)
- canvas->Restore();
+ delegate_->OnPaintLayer(&canvas);
}
unsigned Layer::prepareTexture(WebKit::WebTextureUpdater& /* updater */) {
diff --git a/ui/compositor/layer_unittest.cc b/ui/compositor/layer_unittest.cc
index 6c76161..c72bdd4 100644
--- a/ui/compositor/layer_unittest.cc
+++ b/ui/compositor/layer_unittest.cc
@@ -238,8 +238,8 @@ class TestLayerDelegate : public LayerDelegate {
// Overridden from LayerDelegate:
virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE {
- gfx::ImageSkiaRep contents = canvas->ExtractImageRep();
- paint_size_ = gfx::Size(contents.GetWidth(), contents.GetHeight());
+ SkBitmap contents = canvas->ExtractBitmap();
+ paint_size_ = gfx::Size(contents.width(), contents.height());
canvas->FillRect(gfx::Rect(paint_size_), colors_[color_index_]);
color_index_ = (color_index_ + 1) % static_cast<int>(colors_.size());
const SkMatrix& matrix = canvas->sk_canvas()->getTotalMatrix();
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc
index 1a87c73..26f2e30 100644
--- a/ui/gfx/canvas.cc
+++ b/ui/gfx/canvas.cc
@@ -22,12 +22,23 @@
namespace gfx {
+Canvas::Canvas(const gfx::Size& size, bool is_opaque)
+ : owned_canvas_(new skia::PlatformCanvas(size.width(), size.height(),
+ is_opaque)),
+ canvas_(owned_canvas_.get()) {
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ // skia::PlatformCanvas instances are initialized to 0 by Cairo on Linux, but
+ // uninitialized on Win and Mac.
+ if (!is_opaque)
+ owned_canvas_->clear(SkColorSetARGB(0, 0, 0, 0));
+#endif
+
+ ApplyScaleFactor(ui::SCALE_FACTOR_100P, false);
+}
+
Canvas::Canvas(const gfx::Size& size,
ui::ScaleFactor scale_factor,
- bool is_opaque)
- : scale_factor_(scale_factor),
- owned_canvas_(NULL),
- canvas_(NULL) {
+ bool is_opaque) {
gfx::Size pixel_size = size.Scale(ui::GetScaleFactorScale(scale_factor));
owned_canvas_.reset(new skia::PlatformCanvas(pixel_size.width(),
pixel_size.height(),
@@ -40,47 +51,50 @@ Canvas::Canvas(const gfx::Size& size,
owned_canvas_->clear(SkColorSetARGB(0, 0, 0, 0));
#endif
- SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor));
- canvas_->scale(scale, scale);
+ ApplyScaleFactor(scale_factor, true);
}
Canvas::Canvas(const gfx::ImageSkiaRep& image_rep, bool is_opaque)
- : scale_factor_(image_rep.scale_factor()),
- owned_canvas_(new skia::PlatformCanvas(image_rep.pixel_width(),
+ : owned_canvas_(new skia::PlatformCanvas(image_rep.pixel_width(),
image_rep.pixel_height(),
is_opaque)),
canvas_(owned_canvas_.get()) {
- SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor_));
- canvas_->scale(scale, scale);
+ ApplyScaleFactor(image_rep.scale_factor(), true);
DrawImageInt(gfx::ImageSkia(image_rep), 0, 0);
}
Canvas::Canvas()
- : scale_factor_(ui::SCALE_FACTOR_100P),
- owned_canvas_(new skia::PlatformCanvas()),
+ : owned_canvas_(new skia::PlatformCanvas()),
canvas_(owned_canvas_.get()) {
+ ApplyScaleFactor(ui::SCALE_FACTOR_100P, false);
}
-Canvas::~Canvas() {
+Canvas::Canvas(SkCanvas* canvas,
+ ui::ScaleFactor scale_factor,
+ bool scale_canvas)
+ : owned_canvas_(),
+ canvas_(canvas) {
+ DCHECK(canvas);
+ ApplyScaleFactor(scale_factor, scale_canvas);
}
-// static
-Canvas* Canvas::CreateCanvasWithoutScaling(SkCanvas* canvas,
- ui::ScaleFactor scale_factor) {
- return new Canvas(canvas, scale_factor);
+Canvas::~Canvas() {
+ if (scale_factor_scales_canvas_) {
+ SkScalar scale = 1.0f / ui::GetScaleFactorScale(scale_factor_);
+ canvas_->scale(scale, scale);
+ }
}
void Canvas::RecreateBackingCanvas(const gfx::Size& size,
ui::ScaleFactor scale_factor,
bool is_opaque) {
- scale_factor_ = scale_factor;
gfx::Size pixel_size = size.Scale(ui::GetScaleFactorScale(scale_factor));
owned_canvas_.reset(new skia::PlatformCanvas(pixel_size.width(),
pixel_size.height(),
is_opaque));
canvas_ = owned_canvas_.get();
- SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor_));
- canvas_->scale(scale, scale);
+
+ ApplyScaleFactor(scale_factor, true);
}
// static
@@ -95,7 +109,7 @@ int Canvas::DefaultCanvasTextAlignment() {
return base::i18n::IsRTL() ? TEXT_ALIGN_RIGHT : TEXT_ALIGN_LEFT;
}
-gfx::ImageSkiaRep Canvas::ExtractImageRep() const {
+SkBitmap Canvas::ExtractBitmap() const {
const SkBitmap& device_bitmap = canvas_->getDevice()->accessBitmap(false);
// Make a bitmap to return, and a canvas to draw into it. We don't just want
@@ -103,8 +117,11 @@ gfx::ImageSkiaRep Canvas::ExtractImageRep() const {
// of the bitmap.
SkBitmap result;
device_bitmap.copyTo(&result, SkBitmap::kARGB_8888_Config);
+ return result;
+}
- return gfx::ImageSkiaRep(result, scale_factor_);
+gfx::ImageSkiaRep Canvas::ExtractImageSkiaRep() const {
+ return gfx::ImageSkiaRep(ExtractBitmap(), scale_factor_);
}
void Canvas::DrawDashedRect(const gfx::Rect& rect, SkColor color) {
@@ -484,13 +501,6 @@ void Canvas::Transform(const ui::Transform& transform) {
canvas_->concat(transform.matrix());
}
-Canvas::Canvas(SkCanvas* canvas, ui::ScaleFactor scale_factor)
- : scale_factor_(scale_factor),
- owned_canvas_(),
- canvas_(canvas) {
- DCHECK(canvas);
-}
-
bool Canvas::IntersectsClipRectInt(int x, int y, int w, int h) {
SkRect clip;
return canvas_->getClipBounds(&clip) &&
@@ -503,6 +513,16 @@ bool Canvas::IntersectsClipRect(const gfx::Rect& rect) {
rect.width(), rect.height());
}
+void Canvas::ApplyScaleFactor(ui::ScaleFactor scale_factor,
+ bool scale_canvas) {
+ scale_factor_scales_canvas_ = scale_canvas;
+ scale_factor_ = scale_factor;
+ if (scale_canvas) {
+ SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor));
+ canvas_->scale(scale, scale);
+ }
+}
+
const gfx::ImageSkiaRep& Canvas::GetImageRepToPaint(
const gfx::ImageSkia& image) const {
return GetImageRepToPaint(image, 1.0f, 1.0f);
diff --git a/ui/gfx/canvas.h b/ui/gfx/canvas.h
index 700d7d2..8256412 100644
--- a/ui/gfx/canvas.h
+++ b/ui/gfx/canvas.h
@@ -99,6 +99,12 @@ class UI_EXPORT Canvas {
// Creates an empty canvas with scale factor of 1x.
Canvas();
+ // Creates canvas with provided DIP |size| and a scale factor of 1x.
+ // If this canvas is not opaque, it's explicitly cleared to transparent before
+ // being returned.
+ // TODO(pkotwicz): Remove this constructor.
+ Canvas(const gfx::Size& size, bool is_opaque);
+
// Creates canvas with provided DIP |size| and |scale_factor|.
// If this canvas is not opaque, it's explicitly cleared to transparent before
// being returned.
@@ -110,13 +116,13 @@ class UI_EXPORT Canvas {
// provided |image_rep|, and draws the |image_rep| into it.
Canvas(const gfx::ImageSkiaRep& image_rep, bool is_opaque);
- virtual ~Canvas();
+ // Sets scale factor to |scale_factor|.
+ // Only scales canvas if |scale_canvas| is true.
+ Canvas(SkCanvas* canvas,
+ ui::ScaleFactor scale_factor,
+ bool scale_canvas);
- // Creates a gfx::Canvas backed by an |sk_canvas| with |scale_factor|.
- // |sk_canvas| is assumed to be already scaled based on |scale_factor|
- // so no additional scaling is applied.
- static Canvas* CreateCanvasWithoutScaling(SkCanvas* sk_canvas,
- ui::ScaleFactor scale_factor);
+ virtual ~Canvas();
// Recreates the backing platform canvas with DIP |size| and |scale_factor|.
// If the canvas is not opaque, it is explicitly cleared.
@@ -166,8 +172,13 @@ class UI_EXPORT Canvas {
int x, int y, int w, int h,
int flags);
+ // Extracts a bitmap from the contents of this canvas.
+ // TODO(pkotwicz): Remove ExtractBitmap once all callers use
+ // ExtractImageSkiaRep instead.
+ SkBitmap ExtractBitmap() const;
+
// Extracts an ImageSkiaRep from the contents of this canvas.
- gfx::ImageSkiaRep ExtractImageRep() const;
+ gfx::ImageSkiaRep ExtractImageSkiaRep() const;
// Draws a dashed rectangle of the specified color.
void DrawDashedRect(const gfx::Rect& rect, SkColor color);
@@ -377,12 +388,16 @@ class UI_EXPORT Canvas {
ui::ScaleFactor scale_factor() const { return scale_factor_; }
private:
- Canvas(SkCanvas* canvas, ui::ScaleFactor scale_factor);
-
// Test whether the provided rectangle intersects the current clip rect.
bool IntersectsClipRectInt(int x, int y, int w, int h);
bool IntersectsClipRect(const gfx::Rect& rect);
+ // Sets the canvas' scale factor to |scale_factor|. This affects
+ // the scale factor at which drawing bitmaps occurs and the scale factor of
+ // the image rep returned by Canvas::ExtractImageSkiaRep().
+ // If |scale_canvas| is true, scales the canvas by |scale_factor|.
+ void ApplyScaleFactor(ui::ScaleFactor scale_factor, bool scale_canvas);
+
// Returns the image rep which best matches the canvas |scale_factor_|.
// Returns a null image rep if |image| contains no image reps.
// Builds mip map for returned image rep if necessary.
@@ -395,14 +410,18 @@ class UI_EXPORT Canvas {
float user_defined_scale_factor_x,
float user_defined_scale_factor_y) const;
+ scoped_ptr<skia::PlatformCanvas> owned_canvas_;
+ SkCanvas* canvas_;
+
+ // True if the scale factor scales the canvas and the inverse
+ // canvas scale should be applied when the destructor is called.
+ bool scale_factor_scales_canvas_;
+
// The device scale factor at which drawing on this canvas occurs.
// An additional scale can be applied via Canvas::Scale(). However,
// Canvas::Scale() does not affect |scale_factor_|.
ui::ScaleFactor scale_factor_;
- scoped_ptr<skia::PlatformCanvas> owned_canvas_;
- SkCanvas* canvas_;
-
DISALLOW_COPY_AND_ASSIGN(Canvas);
};
diff --git a/ui/gfx/canvas_linux.cc b/ui/gfx/canvas_linux.cc
index c2a4eec..9d417c9 100644
--- a/ui/gfx/canvas_linux.cc
+++ b/ui/gfx/canvas_linux.cc
@@ -112,7 +112,7 @@ void DrawStringContext::Draw(SkColor text_color) {
void DrawStringContext::DrawWithHalo(SkColor text_color,
SkColor halo_color) {
gfx::Size size(bounds_.width() + 2, bounds_.height() + 2);
- gfx::Canvas text_canvas(size, scale_factor(), false);
+ gfx::Canvas text_canvas(size, false);
text_canvas.FillRect(gfx::Rect(size), static_cast<SkColor>(0));
{
@@ -157,9 +157,7 @@ void DrawStringContext::DrawWithHalo(SkColor text_color,
const SkBitmap& text_bitmap = const_cast<SkBitmap&>(
skia::GetTopDevice(*text_canvas.sk_canvas())->accessBitmap(false));
- const gfx::ImageSkia text_image = gfx::ImageSkia(gfx::ImageSkiaRep(
- text_bitmap, text_canvas.scale_factor()));
- canvas_->DrawImageInt(text_image, text_rect_.x() - 1, text_rect_.y() - 1);
+ canvas_->DrawImageInt(text_bitmap, text_rect_.x() - 1, text_rect_.y() - 1);
}
void DrawStringContext::DrawUnderline(cairo_t* cr, double extra_edge_width) {
diff --git a/ui/gfx/canvas_skia.cc b/ui/gfx/canvas_skia.cc
index 4a6ef61..918842b 100644
--- a/ui/gfx/canvas_skia.cc
+++ b/ui/gfx/canvas_skia.cc
@@ -377,7 +377,7 @@ void Canvas::DrawStringWithHalo(const string16& text,
// Create a temporary buffer filled with the halo color. It must leave room
// for the 1-pixel border around the text.
Size size(w + 2, h + 2);
- Canvas text_canvas(size, scale_factor(), true);
+ Canvas text_canvas(size, true);
SkPaint bkgnd_paint;
bkgnd_paint.setColor(halo_color);
text_canvas.DrawRect(gfx::Rect(size), bkgnd_paint);
@@ -390,9 +390,9 @@ void Canvas::DrawStringWithHalo(const string16& text,
SkBitmap& text_bitmap = const_cast<SkBitmap&>(
skia::GetTopDevice(*text_canvas.sk_canvas())->accessBitmap(true));
- for (int cur_y = 0; cur_y < text_bitmap.height(); cur_y++) {
+ for (int cur_y = 0; cur_y < h + 2; cur_y++) {
uint32_t* text_row = text_bitmap.getAddr32(0, cur_y);
- for (int cur_x = 0; cur_x < text_bitmap.width(); cur_x++) {
+ for (int cur_x = 0; cur_x < w + 2; cur_x++) {
if (text_row[cur_x] == halo_premul) {
// This pixel was not touched by the text routines. See if it borders
// a touched pixel in any of the 4 directions (not diagonally).
@@ -405,9 +405,7 @@ void Canvas::DrawStringWithHalo(const string16& text,
}
// Draw the halo bitmap with blur.
- gfx::ImageSkia text_image = gfx::ImageSkia(gfx::ImageSkiaRep(text_bitmap,
- text_canvas.scale_factor()));
- DrawImageInt(text_image, x - 1, y - 1);
+ DrawImageInt(text_bitmap, x - 1, y - 1);
}
void Canvas::DrawFadeTruncatingString(
diff --git a/ui/gfx/image/canvas_image_source.cc b/ui/gfx/image/canvas_image_source.cc
index 747625a..38f6db8 100644
--- a/ui/gfx/image/canvas_image_source.cc
+++ b/ui/gfx/image/canvas_image_source.cc
@@ -22,7 +22,7 @@ gfx::ImageSkiaRep CanvasImageSource::GetImageForScale(
ui::ScaleFactor scale_factor) {
gfx::Canvas canvas(size_, scale_factor, is_opaque_);
Draw(&canvas);
- return canvas.ExtractImageRep();
+ return canvas.ExtractImageSkiaRep();
}
} // namespace gfx
diff --git a/ui/gfx/image/image.cc b/ui/gfx/image/image.cc
index ea302ab..c5d30a2 100644
--- a/ui/gfx/image/image.cc
+++ b/ui/gfx/image/image.cc
@@ -32,14 +32,12 @@ namespace internal {
const ImageSkia ImageSkiaFromGdkPixbuf(GdkPixbuf* pixbuf) {
CHECK(pixbuf);
gfx::Canvas canvas(gfx::Size(gdk_pixbuf_get_width(pixbuf),
- gdk_pixbuf_get_height(pixbuf)),
- ui::SCALE_FACTOR_100P,
- false);
+ gdk_pixbuf_get_height(pixbuf)), false);
skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
cairo_t* cr = scoped_platform_paint.GetPlatformSurface();
gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0);
cairo_paint(cr);
- return ImageSkia(canvas.ExtractImageRep());
+ return ImageSkia(SkBitmap(canvas.ExtractBitmap()));
}
#endif
diff --git a/ui/views/controls/glow_hover_controller.cc b/ui/views/controls/glow_hover_controller.cc
index 71785f0..e86be4d 100644
--- a/ui/views/controls/glow_hover_controller.cc
+++ b/ui/views/controls/glow_hover_controller.cc
@@ -98,7 +98,7 @@ void GlowHoverController::Draw(gfx::Canvas* canvas,
radius * 2, radius * 2), paint);
}
gfx::ImageSkia result = gfx::ImageSkiaOperations::CreateMaskedImage(
- gfx::ImageSkia(hover_canvas.ExtractImageRep()), mask_image);
+ gfx::ImageSkia(hover_canvas.ExtractImageSkiaRep()), mask_image);
canvas->DrawImageInt(result, (view_->width() - mask_image.width()) / 2,
(view_->height() - mask_image.height()) / 2);
}
diff --git a/ui/views/controls/menu/native_menu_win.cc b/ui/views/controls/menu/native_menu_win.cc
index 44df996..c04a2bd 100644
--- a/ui/views/controls/menu/native_menu_win.cc
+++ b/ui/views/controls/menu/native_menu_win.cc
@@ -281,7 +281,6 @@ class NativeMenuWin::MenuHostWindow {
(height - kItemTopMargin - kItemBottomMargin -
config.check_height) / 2;
gfx::Canvas canvas(gfx::Size(config.check_width, config.check_height),
- ui::SCALE_FACTOR_100P,
false);
NativeTheme::ExtraParams extra;
extra.menu_check.is_radio = false;
diff --git a/ui/views/controls/table/table_view_win.cc b/ui/views/controls/table/table_view_win.cc
index 1538dd8..e9b8765 100644
--- a/ui/views/controls/table/table_view_win.cc
+++ b/ui/views/controls/table/table_view_win.cc
@@ -809,11 +809,10 @@ HWND TableView::CreateNativeControl(HWND parent_container) {
// We create 2 phony images because we are going to switch images at every
// refresh in order to force a refresh of the icon area (somehow the clip
// rect does not include the icon).
- gfx::Canvas canvas(gfx::Size(kImageSize, kImageSize), ui::SCALE_FACTOR_100P,
- false);
+ gfx::Canvas canvas(gfx::Size(kImageSize, kImageSize), false);
{
- base::win::ScopedHICON empty_icon(IconUtil::CreateHICONFromSkBitmap(
- canvas.ExtractImageRep().sk_bitmap()));
+ base::win::ScopedHICON empty_icon(
+ IconUtil::CreateHICONFromSkBitmap(canvas.ExtractBitmap()));
ImageList_AddIcon(image_list, empty_icon);
ImageList_AddIcon(image_list, empty_icon);
}
@@ -1155,7 +1154,7 @@ void TableView::PaintAltText() {
HDC dc = GetDC(GetNativeControlHWND());
gfx::Font font = GetAltTextFont();
gfx::Rect bounds = GetAltTextBounds();
- gfx::Canvas canvas(bounds.size(), ui::SCALE_FACTOR_100P, false);
+ gfx::Canvas canvas(bounds.size(), false);
// Pad by 1 for halo.
canvas.DrawStringWithHalo(alt_text_, font, SK_ColorDKGRAY, SK_ColorWHITE, 1,
1, bounds.width() - 2, bounds.height() - 2,
@@ -1241,7 +1240,6 @@ LRESULT TableView::OnCustomDraw(NMLVCUSTOMDRAW* draw_info) {
if (IntersectRect(&intersection, &icon_rect, &client_rect)) {
gfx::Canvas canvas(gfx::Size(icon_rect.right - icon_rect.left,
icon_rect.bottom - icon_rect.top),
- ui::SCALE_FACTOR_100P,
false);
// It seems the state in nmcd.uItemState is not correct.
diff --git a/ui/views/controls/tree/tree_view_win.cc b/ui/views/controls/tree/tree_view_win.cc
index 8fa702a..5a81519 100644
--- a/ui/views/controls/tree/tree_view_win.cc
+++ b/ui/views/controls/tree/tree_view_win.cc
@@ -691,15 +691,13 @@ HIMAGELIST TreeView::CreateImageList() {
// IDR_FOLDER_CLOSED if they aren't already.
if (model_images[i].width() != width ||
model_images[i].height() != height) {
- gfx::Canvas canvas(gfx::Size(width, height), ui::SCALE_FACTOR_100P,
- false);
+ gfx::Canvas canvas(gfx::Size(width, height), false);
// Draw our icons into this canvas.
int height_offset = (height - model_images[i].height()) / 2;
int width_offset = (width - model_images[i].width()) / 2;
canvas.DrawImageInt(model_images[i], width_offset, height_offset);
- model_icon = IconUtil::CreateHICONFromSkBitmap(
- canvas.ExtractImageRep().sk_bitmap());
+ model_icon = IconUtil::CreateHICONFromSkBitmap(canvas.ExtractBitmap());
} else {
model_icon = IconUtil::CreateHICONFromSkBitmap(model_images[i]);
}
diff --git a/ui/views/widget/native_widget_win.cc b/ui/views/widget/native_widget_win.cc
index 6b832f4..b04bc7f 100644
--- a/ui/views/widget/native_widget_win.cc
+++ b/ui/views/widget/native_widget_win.cc
@@ -2511,8 +2511,7 @@ void NativeWidgetWin::ClientAreaSizeChanged() {
std::max(0, static_cast<int>(r.bottom - r.top)));
delegate_->OnNativeWidgetSizeChanged(s);
if (use_layered_buffer_)
- layered_window_contents_.reset(
- new gfx::Canvas(s, ui::SCALE_FACTOR_100P, false));
+ layered_window_contents_.reset(new gfx::Canvas(s, false));
}
void NativeWidgetWin::UpdateDWMFrame() {