Index: src/image/SkImage_Raster.cpp |
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp |
index e4768af0ac17865da8e8bbd22881e57a6660439e..a1cd602a0733c91c782186338acaf191c28f2fea 100644 |
--- a/src/image/SkImage_Raster.cpp |
+++ b/src/image/SkImage_Raster.cpp |
@@ -10,6 +10,7 @@ |
#include "SkBitmap.h" |
#include "SkCanvas.h" |
#include "SkData.h" |
+#include "SkDecodingImageGenerator.h" |
#include "SkMallocPixelRef.h" |
class SkImage_Raster : public SkImage_Base { |
@@ -69,6 +70,10 @@ public: |
SkShader::TileMode, |
const SkMatrix* localMatrix) const SK_OVERRIDE; |
+ SkImage_Raster(const SkBitmap& bm) |
+ : INHERITED(bm.width(), bm.height()) |
+ , fBitmap(bm) {} |
+ |
private: |
SkImage_Raster() : INHERITED(0, 0) {} |
@@ -198,6 +203,14 @@ SkImage* SkImage::NewRasterData(const SkImageInfo& info, SkData* data, size_t ro |
return SkNEW_ARGS(SkImage_Raster, (info, data, rowBytes)); |
} |
+SkImage* SkImage::NewFromGenerator(SkImageGenerator* generator) { |
+ SkBitmap bitmap; |
+ if (!SkInstallDiscardablePixelRef(generator, &bitmap)) { |
+ return NULL; |
+ } |
+ return SkNEW_ARGS(SkImage_Raster, (bitmap)); |
+} |
+ |
SkImage* SkNewImageFromPixelRef(const SkImageInfo& info, SkPixelRef* pr, |
size_t rowBytes) { |
return SkNEW_ARGS(SkImage_Raster, (info, pr, rowBytes)); |