diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-07-22 16:16:37 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-07-22 16:16:37 +0000 |
commit | 5d105c7a772a0943b1e0aa6005ed4f2247529382 (patch) | |
tree | 489fc4334cf3a3dd20c7a683e8610d069811afa4 /image/SkImage_Codec.cpp | |
parent | 04f3a5586b17cb4b4d2dc1ea2389d0e6691182e6 (diff) | |
download | src-5d105c7a772a0943b1e0aa6005ed4f2247529382.tar.gz |
Add SkImage->draw() call with src and dst rects.
R=junov@chromium.org, senorblanco@chromium.org, reed@google.com
Author: arbesfeld@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19729007
git-svn-id: http://skia.googlecode.com/svn/trunk/src@10237 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'image/SkImage_Codec.cpp')
-rw-r--r-- | image/SkImage_Codec.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/image/SkImage_Codec.cpp b/image/SkImage_Codec.cpp index 61661de3..b9a89908 100644 --- a/image/SkImage_Codec.cpp +++ b/image/SkImage_Codec.cpp @@ -19,6 +19,7 @@ public: virtual ~SkImage_Codec(); virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) SK_OVERRIDE; + virtual void onDrawRectToRect(SkCanvas*, const SkRect*, const SkRect&, const SkPaint*) SK_OVERRIDE; private: SkData* fEncodedData; @@ -48,6 +49,17 @@ void SkImage_Codec::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPai canvas->drawBitmap(fBitmap, x, y, paint); } +void SkImage_Codec::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, + const SkRect& dst, const SkPaint* paint) { + if (!fBitmap.pixelRef()) { + if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), + &fBitmap)) { + return; + } + } + canvas->drawBitmapRectToRect(fBitmap, src, dst, paint); +} + /////////////////////////////////////////////////////////////////////////////// SkImage* SkImage::NewEncodedData(SkData* data) { |