Chromium Code Reviews| Index: src/core/SkCanvas.cpp |
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
| index dcc7047dbcee58ecf56d9d914a09b109afa3baeb..388c0ee048a1ea9b6d768295458864cf6690c814 100644 |
| --- a/src/core/SkCanvas.cpp |
| +++ b/src/core/SkCanvas.cpp |
| @@ -12,6 +12,7 @@ |
| #include "SkDraw.h" |
| #include "SkDrawFilter.h" |
| #include "SkDrawLooper.h" |
| +#include "SkImage_Base.h" |
|
reed1
2014/09/23 12:29:44
Can we just include SkImage.h ?
Rémi Piotaix
2014/09/23 19:47:24
Done.
|
| #include "SkMetaData.h" |
| #include "SkPathOps.h" |
| #include "SkPatchUtils.h" |
| @@ -183,7 +184,7 @@ public: |
| fFilter = NULL; |
| fLayer = NULL; |
| fTopLayer = NULL; |
| - |
| + |
| // don't bother initializing fNext |
| inc_rec(); |
| } |
| @@ -192,7 +193,7 @@ public: |
| fFilter = SkSafeRef(prev.fFilter); |
| fLayer = NULL; |
| fTopLayer = prev.fTopLayer; |
| - |
| + |
| // don't bother initializing fNext |
| inc_rec(); |
| } |
| @@ -292,7 +293,7 @@ public: |
| // can we be marked as simple? |
| fIsSimple = !fFilter && !fDoClearImageFilter; |
| } |
| - |
| + |
| uint32_t oldFlags = paint.getFlags(); |
| fNewPaintFlags = filter_paint_flags(props, oldFlags); |
| if (fIsSimple && (fNewPaintFlags != oldFlags)) { |
| @@ -457,7 +458,7 @@ public: |
| SkNoPixelsBitmapDevice(int width, int height) : INHERITED(make_nopixels(width, height)) {} |
| private: |
| - |
| + |
| typedef SkBitmapDevice INHERITED; |
| }; |
| @@ -466,7 +467,7 @@ SkCanvas::SkCanvas(int width, int height) |
| , fProps(SkSurfaceProps::kLegacyFontHost_InitType) |
| { |
| inc_canvas(); |
| - |
| + |
| this->init(SkNEW_ARGS(SkNoPixelsBitmapDevice, (width, height)), kDefault_InitFlags)->unref(); |
| } |
| @@ -475,7 +476,7 @@ SkCanvas::SkCanvas(int width, int height, InitFlags flags) |
| , fProps(SkSurfaceProps::kLegacyFontHost_InitType) |
| { |
| inc_canvas(); |
| - |
| + |
| this->init(SkNEW_ARGS(SkNoPixelsBitmapDevice, (width, height)), flags)->unref(); |
| } |
| @@ -484,7 +485,7 @@ SkCanvas::SkCanvas(SkBaseDevice* device, const SkSurfaceProps* props, InitFlags |
| , fProps(SkSurfacePropsCopyOrDefault(props)) |
| { |
| inc_canvas(); |
| - |
| + |
| this->init(device, flags); |
| } |
| @@ -493,7 +494,7 @@ SkCanvas::SkCanvas(SkBaseDevice* device) |
| , fProps(SkSurfaceProps::kLegacyFontHost_InitType) |
| { |
| inc_canvas(); |
| - |
| + |
| this->init(device, kDefault_InitFlags); |
| } |
| @@ -502,7 +503,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props) |
| , fProps(props) |
| { |
| inc_canvas(); |
| - |
| + |
| SkAutoTUnref<SkBaseDevice> device(SkNEW_ARGS(SkBitmapDevice, (bitmap))); |
| this->init(device, kDefault_InitFlags); |
| } |
| @@ -512,7 +513,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap) |
| , fProps(SkSurfaceProps::kLegacyFontHost_InitType) |
| { |
| inc_canvas(); |
| - |
| + |
| SkAutoTUnref<SkBaseDevice> device(SkNEW_ARGS(SkBitmapDevice, (bitmap))); |
| this->init(device, kDefault_InitFlags); |
| } |
| @@ -1885,6 +1886,17 @@ void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { |
| LOOPER_END |
| } |
| +void SkCanvas::drawImage(const SkImage* image, SkScalar left, SkScalar top, |
| + const SkPaint* paint) { |
| + image->draw(this, left, top, paint); |
| +} |
| + |
| +void SkCanvas::drawImageRect(const SkImage* image, const SkRect* src, |
| + const SkRect& dst, |
| + const SkPaint* paint) { |
| + image->draw(this, src, dst, paint); |
| +} |
| + |
| void SkCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, |
| const SkPaint* paint) { |
| SkDEBUGCODE(bitmap.validate();) |