summaryrefslogtreecommitdiffstats
path: root/ui/gfx/canvas.cc
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-20 21:54:52 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-20 21:54:52 +0000
commitd24adc83e7de8b042739c96f37588dee5ba091b3 (patch)
treee82cf26051eb22ce33a61a3f2816c39e6135675f /ui/gfx/canvas.cc
parentfc28c977a4969a3ff4c4e8dee98fe67ce111ed86 (diff)
downloadchromium_src-d24adc83e7de8b042739c96f37588dee5ba091b3.zip
chromium_src-d24adc83e7de8b042739c96f37588dee5ba091b3.tar.gz
chromium_src-d24adc83e7de8b042739c96f37588dee5ba091b3.tar.bz2
Revert 224473 "Remove dependency on ui::ScaleFactor from ui/gfx"
> Remove dependency on ui::ScaleFactor from ui/gfx > > As part of the work to removed dependencies on ui/base from ui/gfx I have > changed the public api to Canvas, ImageSkia, ImageSkiaRep and ImagePNGRep > to take float scale values instead of ui::ScaleFactor. > > The notion of supported scale factors has been broken into 2 parts. > ui::SetSupportedScaleFactors remains and calls the > new ImageSkia::SetSupportedScales(). > > The initialization of the supported scale factors has been moved from layout.h > into ResourceBundle, and is done explicitly in tests that don't use > ResourceBundle. > > BUG=103304 > R=ben@chromium.org, oshima@chromium.org, sky@chromium.org > > Review URL: https://codereview.chromium.org/24175004 TBR=davemoore@chromium.org Review URL: https://codereview.chromium.org/24262008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224499 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/canvas.cc')
-rw-r--r--ui/gfx/canvas.cc48
1 files changed, 25 insertions, 23 deletions
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc
index eb0834b..b59d2a0 100644
--- a/ui/gfx/canvas.cc
+++ b/ui/gfx/canvas.cc
@@ -23,10 +23,11 @@
namespace gfx {
-Canvas::Canvas(const Size& size, float image_scale, bool is_opaque)
- : image_scale_(image_scale),
+Canvas::Canvas(const Size& size, ui::ScaleFactor scale_factor, bool is_opaque)
+ : scale_factor_(scale_factor),
canvas_(NULL) {
- Size pixel_size = ToCeiledSize(ScaleSize(size, image_scale));
+ Size pixel_size = ToCeiledSize(
+ ScaleSize(size, ui::GetScaleFactorScale(scale_factor)));
owned_canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(),
pixel_size.height(),
is_opaque));
@@ -38,24 +39,24 @@ Canvas::Canvas(const Size& size, float image_scale, bool is_opaque)
owned_canvas_->clear(SkColorSetARGB(0, 0, 0, 0));
#endif
- SkScalar scale_scalar = SkFloatToScalar(image_scale);
- canvas_->scale(scale_scalar, scale_scalar);
+ SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor));
+ canvas_->scale(scale, scale);
}
Canvas::Canvas(const ImageSkiaRep& image_rep, bool is_opaque)
- : image_scale_(image_rep.scale()),
+ : scale_factor_(image_rep.scale_factor()),
owned_canvas_(skia::AdoptRef(
skia::CreatePlatformCanvas(image_rep.pixel_width(),
image_rep.pixel_height(),
is_opaque))),
canvas_(owned_canvas_.get()) {
- SkScalar scale_scalar = SkFloatToScalar(image_scale_);
- canvas_->scale(scale_scalar, scale_scalar);
+ SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor_));
+ canvas_->scale(scale, scale);
DrawImageInt(ImageSkia(image_rep), 0, 0);
}
Canvas::Canvas()
- : image_scale_(1.0),
+ : scale_factor_(ui::SCALE_FACTOR_100P),
owned_canvas_(skia::AdoptRef(skia::CreatePlatformCanvas(0, 0, false))),
canvas_(owned_canvas_.get()) {
}
@@ -65,21 +66,22 @@ Canvas::~Canvas() {
// static
Canvas* Canvas::CreateCanvasWithoutScaling(SkCanvas* canvas,
- float image_scale) {
- return new Canvas(canvas, image_scale);
+ ui::ScaleFactor scale_factor) {
+ return new Canvas(canvas, scale_factor);
}
void Canvas::RecreateBackingCanvas(const Size& size,
- float image_scale,
+ ui::ScaleFactor scale_factor,
bool is_opaque) {
- image_scale_ = image_scale;
- Size pixel_size = ToFlooredSize(ScaleSize(size, image_scale));
+ scale_factor_ = scale_factor;
+ Size pixel_size = ToFlooredSize(
+ ScaleSize(size, ui::GetScaleFactorScale(scale_factor)));
owned_canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(),
pixel_size.height(),
is_opaque));
canvas_ = owned_canvas_.get();
- SkScalar scale_scalar = SkFloatToScalar(image_scale);
- canvas_->scale(scale_scalar, scale_scalar);
+ SkScalar scale = SkFloatToScalar(ui::GetScaleFactorScale(scale_factor_));
+ canvas_->scale(scale, scale);
}
// static
@@ -134,7 +136,7 @@ ImageSkiaRep Canvas::ExtractImageRep() const {
SkBitmap result;
device_bitmap.copyTo(&result, SkBitmap::kARGB_8888_Config);
- return ImageSkiaRep(result, image_scale_);
+ return ImageSkiaRep(result, scale_factor_);
}
void Canvas::DrawDashedRect(const Rect& rect, SkColor color) {
@@ -327,7 +329,7 @@ void Canvas::DrawImageInt(const ImageSkia& image,
if (image_rep.is_null())
return;
const SkBitmap& bitmap = image_rep.sk_bitmap();
- float bitmap_scale = image_rep.scale();
+ float bitmap_scale = image_rep.GetScale();
canvas_->save();
canvas_->scale(SkFloatToScalar(1.0f / bitmap_scale),
@@ -390,7 +392,7 @@ void Canvas::DrawImageInt(const ImageSkia& image,
if (src_w == dest_w && src_h == dest_h &&
user_scale_x == 1.0f && user_scale_y == 1.0f &&
- image_rep.scale() == 1.0f) {
+ image_rep.scale_factor() == ui::SCALE_FACTOR_100P) {
// Workaround for apparent bug in Skia that causes image to occasionally
// shift.
SkIRect src_rect = { src_x, src_y, src_x + src_w, src_y + src_h };
@@ -572,8 +574,8 @@ void Canvas::Transform(const gfx::Transform& transform) {
canvas_->concat(transform.matrix());
}
-Canvas::Canvas(SkCanvas* canvas, float image_scale)
- : image_scale_(image_scale),
+Canvas::Canvas(SkCanvas* canvas, ui::ScaleFactor scale_factor)
+ : scale_factor_(scale_factor),
owned_canvas_(),
canvas_(canvas) {
DCHECK(canvas);
@@ -599,7 +601,7 @@ const ImageSkiaRep& Canvas::GetImageRepToPaint(
const ImageSkia& image,
float user_additional_scale_x,
float user_additional_scale_y) const {
- const ImageSkiaRep& image_rep = image.GetRepresentation(image_scale_);
+ const ImageSkiaRep& image_rep = image.GetRepresentation(scale_factor_);
if (!image_rep.is_null()) {
SkMatrix m = canvas_->getTotalMatrix();
@@ -608,7 +610,7 @@ const ImageSkiaRep& Canvas::GetImageRepToPaint(
float scale_y = SkScalarToFloat(SkScalarAbs(m.getScaleY())) *
user_additional_scale_y;
- float bitmap_scale = image_rep.scale();
+ float bitmap_scale = image_rep.GetScale();
if (scale_x < bitmap_scale || scale_y < bitmap_scale)
const_cast<SkBitmap&>(image_rep.sk_bitmap()).buildMipMap();
}