| Index: src/image/SkImage_Codec.cpp
|
| diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp
|
| index 61661de3569f86b4faf479ad43fb17219468d29c..b9a8990838fa8c587c26b7005ddb46d2250586cf 100644
|
| --- a/src/image/SkImage_Codec.cpp
|
| +++ b/src/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) {
|
|
|