Index: src/core/SkImageGenerator.cpp |
diff --git a/src/core/SkImageGenerator.cpp b/src/core/SkImageGenerator.cpp |
index 187b46047af7e403feb2577940d15f0ea83a286f..0ce2cc9ed40d6c2a9d0c17cc3a2f1528060f652b 100644 |
--- a/src/core/SkImageGenerator.cpp |
+++ b/src/core/SkImageGenerator.cpp |
@@ -199,6 +199,26 @@ bool SkImageGenerator::tryGenerateBitmap(SkBitmap* bitmap, const SkImageInfo* in |
return true; |
} |
+bool SkImageGenerator::canDecodeAndScale(const SkColorType colorType, const SkScalar scale, SkISize *availableSize, SkISize *lowerSize) { |
+ return this->onCanDecodeAndScale(colorType, scale, availableSize, lowerSize); |
+} |
+ |
+bool SkImageGenerator::onCanDecodeAndScale(const SkColorType colorType, const SkScalar scale, SkISize *availableSize, SkISize *lowerSize) { |
+ if (colorType != fInfo.colorType()) |
+ return false; |
+ if (scale != SK_Scalar1) |
+ return false; |
+ if (availableSize) { |
+ availableSize->fWidth = fInfo.width(); |
+ availableSize->fHeight = fInfo.height(); |
+ } |
+ if (lowerSize) { |
+ availableSize->fWidth = availableSize->fHeight = 0; |
+ } |
+ return true; |
+} |
+ |
+ |
#include "SkGraphics.h" |
static SkGraphics::ImageGeneratorFromEncodedFactory gFactory; |
@@ -217,8 +237,10 @@ SkImageGenerator* SkImageGenerator::NewFromEncoded(SkData* data) { |
} |
if (gFactory) { |
if (SkImageGenerator* generator = gFactory(data)) { |
+ SkDebugf("minggle %s generator opaque %d size %d %d", __func__, generator->getInfo().isOpaque(), generator->getInfo().width(), generator->getInfo().height()); |
return generator; |
} |
} |
+ SkDebugf("minggle %s generator1", __func__); |
return SkImageGenerator::NewFromEncodedImpl(data); |
} |