| Index: src/image/SkImage.cpp
|
| diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
|
| index 1169459df638d79d9a4262216f531274b139f402..9c60f55aa749cfbade31164b4222c3f7f75ebc6f 100644
|
| --- a/src/image/SkImage.cpp
|
| +++ b/src/image/SkImage.cpp
|
| @@ -5,17 +5,21 @@
|
| * found in the LICENSE file.
|
| */
|
|
|
| -#include "SkImage_Base.h"
|
| -#include "SkImagePriv.h"
|
| #include "SkBitmap.h"
|
| #include "SkCanvas.h"
|
| +#include "SkImagePriv.h"
|
| +#include "SkImage_Base.h"
|
|
|
| SK_DEFINE_INST_COUNT(SkImage)
|
|
|
| -static SkImage_Base* asIB(SkImage* image) {
|
| +static SkImage_Base* as_IB(SkImage* image) {
|
| return static_cast<SkImage_Base*>(image);
|
| }
|
|
|
| +static const SkImage_Base* as_IB(const SkImage* image) {
|
| + return static_cast<const SkImage_Base*>(image);
|
| +}
|
| +
|
| uint32_t SkImage::NextUniqueID() {
|
| static int32_t gUniqueID;
|
|
|
| @@ -29,9 +33,17 @@ uint32_t SkImage::NextUniqueID() {
|
|
|
| void SkImage::draw(SkCanvas* canvas, SkScalar x, SkScalar y,
|
| const SkPaint* paint) {
|
| - asIB(this)->onDraw(canvas, x, y, paint);
|
| + as_IB(this)->onDraw(canvas, x, y, paint);
|
| }
|
|
|
| GrTexture* SkImage::getTexture() {
|
| - return asIB(this)->onGetTexture();
|
| + return as_IB(this)->onGetTexture();
|
| +}
|
| +
|
| +SkData* SkImage::encode(SkImageEncoder::Type type, int quality) const {
|
| + SkBitmap bm;
|
| + if (as_IB(this)->getROPixels(&bm)) {
|
| + return SkImageEncoder::EncodeData(bm, type, quality);
|
| + }
|
| + return NULL;
|
| }
|
|
|