diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-20 21:54:52 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-20 21:54:52 +0000 |
commit | d24adc83e7de8b042739c96f37588dee5ba091b3 (patch) | |
tree | e82cf26051eb22ce33a61a3f2816c39e6135675f /ui/gfx/canvas.cc | |
parent | fc28c977a4969a3ff4c4e8dee98fe67ce111ed86 (diff) | |
download | chromium_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.cc | 48 |
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(); } |