Implementation of SkBitmapRegionDecoder using SkAndroidCodec
Includes testing in DM and nanobench
BUG=skia:
Review URL: https://codereview.chromium.org/1402863002
diff --git a/tools/SkBitmapRegionDecoderInterface.h b/tools/SkBitmapRegionDecoderInterface.h
index 047f023..e1f79bc 100644
--- a/tools/SkBitmapRegionDecoderInterface.h
+++ b/tools/SkBitmapRegionDecoderInterface.h
@@ -19,19 +19,18 @@
public:
enum Strategy {
- kCanvas_Strategy, // Draw to the canvas, uses SkCodec
- kOriginal_Strategy, // Sampling, uses SkImageDecoder
- // TODO (msarett): Add strategy for SkScaledCodec
+ kCanvas_Strategy, // Draw to the canvas, uses SkCodec
+ kOriginal_Strategy, // Sampling, uses SkImageDecoder
+ kAndroidCodec_Strategy, // Uses SkAndroidCodec for scaling and subsetting
};
/*
- * @param stream Encoded image stream, takes ownership
+ * @param data Refs the data while this object exists, unrefs on destruction
* @param strategy Strategy used for scaling and subsetting
- * @return Tries to create an SkBitmapRegionDecoder, returns NULL
- * on failure
+ * @return Tries to create an SkBitmapRegionDecoder, returns NULL on failure
*/
static SkBitmapRegionDecoderInterface* CreateBitmapRegionDecoder(
- SkStreamRewindable* stream, Strategy strategy);
+ SkData* data, Strategy strategy);
/*
* Decode a scaled region of the encoded image stream