| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/gfx/canvas.h" | 5 #include "ui/gfx/canvas.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 canvas_->scale(scale_scalar, scale_scalar); | 56 canvas_->scale(scale_scalar, scale_scalar); |
| 57 DrawImageInt(ImageSkia(image_rep), 0, 0); | 57 DrawImageInt(ImageSkia(image_rep), 0, 0); |
| 58 } | 58 } |
| 59 | 59 |
| 60 Canvas::Canvas() | 60 Canvas::Canvas() |
| 61 : image_scale_(1.0), | 61 : image_scale_(1.0), |
| 62 owned_canvas_(skia::AdoptRef(skia::CreatePlatformCanvas(0, 0, false))), | 62 owned_canvas_(skia::AdoptRef(skia::CreatePlatformCanvas(0, 0, false))), |
| 63 canvas_(owned_canvas_.get()) { | 63 canvas_(owned_canvas_.get()) { |
| 64 } | 64 } |
| 65 | 65 |
| 66 Canvas::Canvas(SkCanvas* canvas, float image_scale) |
| 67 : image_scale_(image_scale), owned_canvas_(), canvas_(canvas) { |
| 68 DCHECK(canvas); |
| 69 } |
| 70 |
| 66 Canvas::~Canvas() { | 71 Canvas::~Canvas() { |
| 67 } | 72 } |
| 68 | 73 |
| 69 // static | |
| 70 Canvas* Canvas::CreateCanvasWithoutScaling(SkCanvas* canvas, | |
| 71 float image_scale) { | |
| 72 return new Canvas(canvas, image_scale); | |
| 73 } | |
| 74 | |
| 75 void Canvas::RecreateBackingCanvas(const Size& size, | 74 void Canvas::RecreateBackingCanvas(const Size& size, |
| 76 float image_scale, | 75 float image_scale, |
| 77 bool is_opaque) { | 76 bool is_opaque) { |
| 78 image_scale_ = image_scale; | 77 image_scale_ = image_scale; |
| 79 Size pixel_size = ToFlooredSize(ScaleSize(size, image_scale)); | 78 Size pixel_size = ToFlooredSize(ScaleSize(size, image_scale)); |
| 80 owned_canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(), | 79 owned_canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(), |
| 81 pixel_size.height(), | 80 pixel_size.height(), |
| 82 is_opaque)); | 81 is_opaque)); |
| 83 canvas_ = owned_canvas_.get(); | 82 canvas_ = owned_canvas_.get(); |
| 84 SkScalar scale_scalar = SkFloatToScalar(image_scale); | 83 SkScalar scale_scalar = SkFloatToScalar(image_scale); |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 } | 540 } |
| 542 | 541 |
| 543 void Canvas::EndPlatformPaint() { | 542 void Canvas::EndPlatformPaint() { |
| 544 skia::EndPlatformPaint(canvas_); | 543 skia::EndPlatformPaint(canvas_); |
| 545 } | 544 } |
| 546 | 545 |
| 547 void Canvas::Transform(const gfx::Transform& transform) { | 546 void Canvas::Transform(const gfx::Transform& transform) { |
| 548 canvas_->concat(transform.matrix()); | 547 canvas_->concat(transform.matrix()); |
| 549 } | 548 } |
| 550 | 549 |
| 551 Canvas::Canvas(SkCanvas* canvas, float image_scale) | |
| 552 : image_scale_(image_scale), | |
| 553 owned_canvas_(), | |
| 554 canvas_(canvas) { | |
| 555 DCHECK(canvas); | |
| 556 } | |
| 557 | |
| 558 bool Canvas::IntersectsClipRectInt(int x, int y, int w, int h) { | 550 bool Canvas::IntersectsClipRectInt(int x, int y, int w, int h) { |
| 559 SkRect clip; | 551 SkRect clip; |
| 560 return canvas_->getClipBounds(&clip) && | 552 return canvas_->getClipBounds(&clip) && |
| 561 clip.intersect(SkIntToScalar(x), SkIntToScalar(y), SkIntToScalar(x + w), | 553 clip.intersect(SkIntToScalar(x), SkIntToScalar(y), SkIntToScalar(x + w), |
| 562 SkIntToScalar(y + h)); | 554 SkIntToScalar(y + h)); |
| 563 } | 555 } |
| 564 | 556 |
| 565 bool Canvas::IntersectsClipRect(const Rect& rect) { | 557 bool Canvas::IntersectsClipRect(const Rect& rect) { |
| 566 return IntersectsClipRectInt(rect.x(), rect.y(), | 558 return IntersectsClipRectInt(rect.x(), rect.y(), |
| 567 rect.width(), rect.height()); | 559 rect.width(), rect.height()); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 // by the paint). | 625 // by the paint). |
| 634 SkPaint p(paint); | 626 SkPaint p(paint); |
| 635 p.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); | 627 p.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); |
| 636 p.setShader(shader.get()); | 628 p.setShader(shader.get()); |
| 637 | 629 |
| 638 // The rect will be filled by the bitmap. | 630 // The rect will be filled by the bitmap. |
| 639 canvas_->drawRect(dest_rect, p); | 631 canvas_->drawRect(dest_rect, p); |
| 640 } | 632 } |
| 641 | 633 |
| 642 } // namespace gfx | 634 } // namespace gfx |
| OLD | NEW |