Index: include/core/SkCanvas.h |
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h |
index bc39ec2850bf345e06f8626954bc075b0c1cdf95..ed52ee85d340df41252e7c9055b1450e39703395 100644 |
--- a/include/core/SkCanvas.h |
+++ b/include/core/SkCanvas.h |
@@ -37,6 +37,9 @@ class SkSurface; |
class SkSurface_Base; |
class SkTextBlob; |
+//#define SK_SUPPORT_LEGACY_SIMPLE_DRAWIMAGERECT |
+//#define SK_SUPPORT_LEGACY_SRCPTR_DRAWIMAGERECT |
+ |
/** \class SkCanvas |
A Canvas encapsulates all of the state about drawing into a device (bitmap). |
@@ -819,20 +822,28 @@ public: |
* @param paint The paint used to draw the image, or NULL |
* @param constraint Control the tradeoff between speed and exactness w.r.t. the src-rect. |
*/ |
+ void drawImageRect(const SkImage* image, const SkRect& src, const SkRect& dst, |
+ const SkPaint* paint, |
+ SrcRectConstraint constraint = kStrict_SrcRectConstraint); |
+ // variant that takes src SkIRect |
+ void drawImageRect(const SkImage* image, const SkIRect& isrc, const SkRect& dst, |
+ const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
+ // variant that assumes src == image-bounds |
+#ifdef SK_SUPPORT_LEGACY_SIMPLE_DRAWIMAGERECT |
+ void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint = NULL); |
+#else |
+ void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint, |
+ SrcRectConstraint = kStrict_SrcRectConstraint); |
+#endif |
+ |
+#ifdef SK_SUPPORT_LEGACY_SRCPTR_DRAWIMAGERECT |
void drawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst, |
const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
void drawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst) { |
this->drawImageRect(image, src, dst, NULL, kStrict_SrcRectConstraint); |
} |
- |
- void drawImageRect(const SkImage* image, const SkRect& dst, const SkPaint* paint = NULL) { |
- // With no src-rect, the constraint value is ignored, so we just use the default. |
- this->drawImageRect(image, NULL, dst, paint, kStrict_SrcRectConstraint); |
- } |
- |
- void drawImageRect(const SkImage* image, const SkIRect& isrc, const SkRect& dst, |
- const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
+#endif |
/** |
* Draw the image stretched differentially to fit into dst. |
@@ -881,15 +892,22 @@ public: |
* @param paint The paint used to draw the bitmap, or NULL |
* @param constraint Control the tradeoff between speed and exactness w.r.t. the src-rect. |
*/ |
- void drawBitmapRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, |
+ void drawBitmapRect(const SkBitmap& bitmap, const SkRect& src, const SkRect& dst, |
const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
- |
- void drawBitmapRect(const SkBitmap& bitmap, const SkRect& dst, const SkPaint* paint = NULL) { |
- this->drawBitmapRect(bitmap, NULL, dst, paint, kStrict_SrcRectConstraint); |
- } |
- |
+ // variant where src is SkIRect |
void drawBitmapRect(const SkBitmap& bitmap, const SkIRect& isrc, const SkRect& dst, |
const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
+#ifdef SK_SUPPORT_LEGACY_SIMPLE_DRAWIMAGERECT |
+ void drawBitmapRect(const SkBitmap& bitmap, const SkRect& dst, const SkPaint* paint = NULL); |
+#else |
+ void drawBitmapRect(const SkBitmap& bitmap, const SkRect& dst, const SkPaint* paint, |
+ SrcRectConstraint = kStrict_SrcRectConstraint); |
+#endif |
+ |
+#ifdef SK_SUPPORT_LEGACY_SRCPTR_DRAWIMAGERECT |
+ void drawBitmapRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, |
+ const SkPaint* paint, SrcRectConstraint = kStrict_SrcRectConstraint); |
+#endif |
/** |
* Draw the bitmap stretched differentially to fit into dst. |
@@ -1209,6 +1227,14 @@ public: |
static void Internal_Private_SetTreatSpriteAsBitmap(bool); |
static bool Internal_Private_GetTreatSpriteAsBitmap(); |
+ // TEMP helpers until we switch virtual over to const& for src-rect |
+ void legacy_drawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst, |
+ const SkPaint* paint, |
+ SrcRectConstraint constraint = kStrict_SrcRectConstraint); |
+ void legacy_drawBitmapRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, |
+ const SkPaint* paint, |
+ SrcRectConstraint constraint = kStrict_SrcRectConstraint); |
+ |
protected: |
// default impl defers to getDevice()->newSurface(info) |
virtual SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&); |