Index: src/image/SkImage_Raster.cpp |
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp |
index f1d1fcd27ff3b5438bed4763a2ed83013a1922d3..80a575cd1d9da953d0249f139988c6c62a175418 100644 |
--- a/src/image/SkImage_Raster.cpp |
+++ b/src/image/SkImage_Raster.cpp |
@@ -5,15 +5,14 @@ |
* found in the LICENSE file. |
*/ |
-#include "SkImage_Base.h" |
-#include "SkImagePriv.h" |
+#include "SkImage_BitmapBase.h" |
+ |
#include "SkBitmap.h" |
-#include "SkCanvas.h" |
#include "SkData.h" |
#include "SkDecodingImageGenerator.h" |
-#include "SkMallocPixelRef.h" |
+#include "SkImagePriv.h" |
-class SkImage_Raster : public SkImage_Base { |
+class SkImage_Raster : public SkImage_BitmapBase { |
public: |
static bool ValidArgs(const Info& info, size_t rowBytes) { |
const int maxDimension = SK_MaxS32 >> 2; |
@@ -54,9 +53,6 @@ public: |
SkImage_Raster(const SkImageInfo&, SkData*, size_t rb); |
virtual ~SkImage_Raster(); |
- virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) const SK_OVERRIDE; |
- virtual void onDrawRectToRect(SkCanvas*, const SkRect*, const SkRect&, |
- const SkPaint*) const SK_OVERRIDE; |
virtual bool onReadPixels(SkBitmap*, const SkIRect&) const SK_OVERRIDE; |
virtual const void* onPeekPixels(SkImageInfo*, size_t* /*rowBytes*/) const SK_OVERRIDE; |
virtual bool getROPixels(SkBitmap*) const SK_OVERRIDE; |
@@ -64,24 +60,17 @@ public: |
// exposed for SkSurface_Raster via SkNewImageFromPixelRef |
SkImage_Raster(const SkImageInfo&, SkPixelRef*, size_t rowBytes); |
- SkPixelRef* getPixelRef() const { return fBitmap.pixelRef(); } |
- |
- virtual SkShader* onNewShader(SkShader::TileMode, |
- SkShader::TileMode, |
- const SkMatrix* localMatrix) const SK_OVERRIDE; |
- |
- virtual bool isOpaque() const SK_OVERRIDE; |
+ SkPixelRef* getPixelRef() const { return this->getBitmap().pixelRef(); } |
SkImage_Raster(const SkBitmap& bm) |
- : INHERITED(bm.width(), bm.height()) |
- , fBitmap(bm) {} |
+ : INHERITED(bm) {} |
private: |
SkImage_Raster() : INHERITED(0, 0) {} |
- SkBitmap fBitmap; |
+// SkBitmap fBitmap; |
- typedef SkImage_Base INHERITED; |
+ typedef SkImage_BitmapBase INHERITED; |
}; |
/////////////////////////////////////////////////////////////////////////////// |
@@ -108,41 +97,33 @@ SkImage_Raster::SkImage_Raster(const Info& info, SkData* data, size_t rowBytes) |
void* addr = const_cast<void*>(data->data()); |
SkColorTable* ctable = NULL; |
- fBitmap.installPixels(info, addr, rowBytes, ctable, release_data, data); |
- fBitmap.setImmutable(); |
- fBitmap.lockPixels(); |
+ // Safe (in constructor) but ugly, maybe we should add a constructor with the same sig. as |
+ // this one in SkImage_BitmapBase ? |
+ SkBitmap* bitmap = const_cast<SkBitmap*>(&this->getBitmap()); |
+ bitmap->installPixels(info, addr, rowBytes, ctable, release_data, data); |
+ bitmap->setImmutable(); |
+ bitmap->lockPixels(); |
} |
SkImage_Raster::SkImage_Raster(const Info& info, SkPixelRef* pr, size_t rowBytes) |
: INHERITED(info.width(), info.height()) |
{ |
- fBitmap.setInfo(info, rowBytes); |
- fBitmap.setPixelRef(pr); |
- fBitmap.lockPixels(); |
+ // Safe (in constructor) but ugly, maybe we should add a constructor with the same sig. as |
+ // this one in SkImage_BitmapBase ? |
+ SkBitmap* bitmap = const_cast<SkBitmap*>(&this->getBitmap()); |
+ bitmap->setInfo(info, rowBytes); |
+ bitmap->setPixelRef(pr); |
+ bitmap->lockPixels(); |
} |
SkImage_Raster::~SkImage_Raster() {} |
-SkShader* SkImage_Raster::onNewShader(SkShader::TileMode tileX, SkShader::TileMode tileY, |
- const SkMatrix* localMatrix) const { |
- return SkShader::CreateBitmapShader(fBitmap, tileX, tileY, localMatrix); |
-} |
- |
-void SkImage_Raster::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const { |
- canvas->drawBitmap(fBitmap, x, y, paint); |
-} |
- |
-void SkImage_Raster::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst, |
- const SkPaint* paint) const { |
- canvas->drawBitmapRectToRect(fBitmap, src, dst, paint); |
-} |
- |
bool SkImage_Raster::onReadPixels(SkBitmap* dst, const SkIRect& subset) const { |
if (dst->pixelRef()) { |
return this->INHERITED::onReadPixels(dst, subset); |
} else { |
SkBitmap src; |
- if (!fBitmap.extractSubset(&src, subset)) { |
+ if (!this->getBitmap().extractSubset(&src, subset)) { |
return false; |
} |
return src.copyTo(dst, src.colorType()); |
@@ -150,17 +131,17 @@ bool SkImage_Raster::onReadPixels(SkBitmap* dst, const SkIRect& subset) const { |
} |
const void* SkImage_Raster::onPeekPixels(SkImageInfo* infoPtr, size_t* rowBytesPtr) const { |
- const SkImageInfo info = fBitmap.info(); |
- if ((kUnknown_SkColorType == info.colorType()) || !fBitmap.getPixels()) { |
+ const SkImageInfo info = this->getBitmap().info(); |
+ if ((kUnknown_SkColorType == info.colorType()) || !this->getBitmap().getPixels()) { |
return NULL; |
} |
*infoPtr = info; |
- *rowBytesPtr = fBitmap.rowBytes(); |
- return fBitmap.getPixels(); |
+ *rowBytesPtr = this->getBitmap().rowBytes(); |
+ return this->getBitmap().getPixels(); |
} |
bool SkImage_Raster::getROPixels(SkBitmap* dst) const { |
- *dst = fBitmap; |
+ *dst = this->getBitmap(); |
return true; |
} |
@@ -221,7 +202,3 @@ SkImage* SkNewImageFromPixelRef(const SkImageInfo& info, SkPixelRef* pr, |
SkPixelRef* SkBitmapImageGetPixelRef(SkImage* image) { |
return ((SkImage_Raster*)image)->getPixelRef(); |
} |
- |
-bool SkImage_Raster::isOpaque() const { |
- return fBitmap.isOpaque(); |
-} |