Index: src/image/SkImage_Raster.cpp |
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp |
index 250e3624eaefeb8f0fc0a27d43ac5295d9e7b976..5f403d9cca2c0680a4257e69ffc89a7de2975e79 100644 |
--- a/src/image/SkImage_Raster.cpp |
+++ b/src/image/SkImage_Raster.cpp |
@@ -79,6 +79,7 @@ public: |
const SkMatrix* localMatrix) const override; |
bool isOpaque() const override; |
+ bool onAsBitmap(SkBitmap*, AsBitmapMode) const override; |
SkImage_Raster(const SkBitmap& bm, const SkSurfaceProps* props) |
: INHERITED(bm.width(), bm.height(), props) |
@@ -262,3 +263,11 @@ bool SkImage_Raster::isOpaque() const { |
return fBitmap.isOpaque(); |
} |
+bool SkImage_Raster::onAsBitmap(SkBitmap* bitmap, AsBitmapMode mode) const { |
+ if (kRO_AsBitmapMode == mode) { |
+ bitmap->setInfo(fBitmap.info()); |
+ bitmap->setPixelRef(fBitmap.pixelRef(), fBitmap.pixelRefOrigin()); |
+ return true; |
+ } |
+ return this->INHERITED::onAsBitmap(bitmap, kRW_AsBitmapMode); |
+} |