| Index: trunk/src/ui/gfx/canvas.cc
|
| ===================================================================
|
| --- trunk/src/ui/gfx/canvas.cc (revision 224498)
|
| +++ trunk/src/ui/gfx/canvas.cc (working copy)
|
| @@ -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 @@
|
| 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 @@
|
|
|
| // 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 @@
|
| 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 @@
|
| 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 @@
|
|
|
| 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 @@
|
| 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 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 @@
|
| 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();
|
| }
|
|
|