Create an SkAndroidCodec API separate from SkCodec
We will implement this API using SkCodecs.
SkAndroidCodecs will be used to implement the
BitmapRegionDecoder Java API (and possibly
BitmapFactory).
BUG=skia:
Review URL: https://codereview.chromium.org/1406223002
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 1beaec9..a7cca83 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -104,7 +104,6 @@
class CodecSrc : public Src {
public:
enum Mode {
- kScaledCodec_Mode,
kCodec_Mode,
kScanline_Mode,
kScanline_Subset_Mode,
@@ -129,6 +128,28 @@
float fScale;
};
+class AndroidCodecSrc : public Src {
+public:
+ enum Mode {
+ kFullImage_Mode,
+ // Splits the image into multiple subsets using a divisor and decodes the subsets
+ // separately.
+ kDivisor_Mode,
+ };
+
+ AndroidCodecSrc(Path, Mode, CodecSrc::DstColorType, int sampleSize);
+
+ Error draw(SkCanvas*) const override;
+ SkISize size() const override;
+ Name name() const override;
+ bool veto(SinkFlags) const override;
+private:
+ Path fPath;
+ Mode fMode;
+ CodecSrc::DstColorType fDstColorType;
+ int fSampleSize;
+};
+
// Allows for testing of various implementations of Android's BitmapRegionDecoder
class BRDSrc : public Src {
public: