Index: include/core/SkCanvas.h |
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h |
index 034e405f3d623a2bb57457812b19b11fe4874f27..9cfc5b182b20e7b1d6c49fb9fd26fd6012e355e3 100644 |
--- a/include/core/SkCanvas.h |
+++ b/include/core/SkCanvas.h |
@@ -772,6 +772,10 @@ public: |
@param paint The paint used to draw the image, or NULL |
*/ |
void drawImage(const SkImage* image, SkScalar left, SkScalar top, const SkPaint* paint = NULL); |
+ void drawImage(const sk_sp<SkImage>& image, SkScalar left, SkScalar top, |
+ const SkPaint* paint = NULL) { |
+ this->drawImage(image.get(), left, top, paint); |
+ } |
/** |
* Controls the behavior at the edge of the src-rect, when specified in drawImageRect, |
@@ -823,6 +827,20 @@ public: |
void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint, |
SrcRectConstraint = kStrict_SrcRectConstraint); |
+ void drawImageRect(const sk_sp<SkImage>& image, const SkRect& src, const SkRect& dst, |
+ const SkPaint* paint, |
+ SrcRectConstraint constraint = kStrict_SrcRectConstraint) { |
+ this->drawImageRect(image.get(), src, dst, paint, constraint); |
+ } |
+ void drawImageRect(const sk_sp<SkImage>& image, const SkIRect& isrc, const SkRect& dst, |
+ const SkPaint* paint, SrcRectConstraint cons = kStrict_SrcRectConstraint) { |
+ this->drawImageRect(image.get(), isrc, dst, paint, cons); |
+ } |
+ void drawImageRect(const sk_sp<SkImage>& image, const SkRect& dst, const SkPaint* paint, |
+ SrcRectConstraint cons = kStrict_SrcRectConstraint) { |
+ this->drawImageRect(image.get(), dst, paint, cons); |
+ } |
+ |
/** |
* Draw the image stretched differentially to fit into dst. |
* center is a rect within the image, and logically divides the image |
@@ -838,7 +856,11 @@ public: |
* - The sides (along the shrink axis) and center are not drawn |
*/ |
void drawImageNine(const SkImage*, const SkIRect& center, const SkRect& dst, |
- const SkPaint* paint = NULL); |
+ const SkPaint* paint = nullptr); |
+ void drawImageNine(const sk_sp<SkImage>& image, const SkIRect& center, const SkRect& dst, |
+ const SkPaint* paint = nullptr) { |
+ this->drawImageNine(image.get(), center, dst, paint); |
+ } |
/** Draw the specified bitmap, with its top/left corner at (x,y), using the |
specified paint, transformed by the current matrix. Note: if the paint |
@@ -973,6 +995,9 @@ public: |
void drawPicture(const SkPicture* picture) { |
this->drawPicture(picture, NULL, NULL); |
} |
+ void drawPicture(sk_sp<SkPicture>& picture) { |
+ this->drawPicture(picture.get()); |
+ } |
/** |
* Draw the picture into this canvas. |
@@ -987,6 +1012,9 @@ public: |
* saveLayer(paint)/drawPicture/restore |
*/ |
void drawPicture(const SkPicture*, const SkMatrix* matrix, const SkPaint* paint); |
+ void drawPicture(sk_sp<SkPicture>& picture, const SkMatrix* matrix, const SkPaint* paint) { |
+ this->drawPicture(picture.get(), matrix, paint); |
+ } |
enum VertexMode { |
kTriangles_VertexMode, |
@@ -1065,6 +1093,17 @@ public: |
this->drawAtlas(atlas, xform, tex, NULL, count, SkXfermode::kDst_Mode, cullRect, paint); |
} |
+ void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[], |
+ const SkColor colors[], int count, SkXfermode::Mode mode, const SkRect* cull, |
+ const SkPaint* paint) { |
+ this->drawAtlas(atlas.get(), xform, tex, colors, count, mode, cull, paint); |
+ } |
+ void drawAtlas(const sk_sp<SkImage>& atlas, const SkRSXform xform[], const SkRect tex[], |
+ int count, const SkRect* cullRect, const SkPaint* paint) { |
+ this->drawAtlas(atlas.get(), xform, tex, nullptr, count, SkXfermode::kDst_Mode, |
+ cullRect, paint); |
+ } |
+ |
/** |
* Draw the contents of this drawable into the canvas. If the canvas is async |
* (e.g. it is recording into a picture) then the drawable will be referenced instead, |