Index: dm/DMSrcSink.h |
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h |
index 0aa22a06084fb795b33ee8094e2508b75bb2ca0e..b77c8b406b7ce5d11fa12c824f4fc6c915dd721f 100644 |
--- a/dm/DMSrcSink.h |
+++ b/dm/DMSrcSink.h |
@@ -12,6 +12,7 @@ |
#include "SkBBHFactory.h" |
#include "SkBBoxHierarchy.h" |
#include "SkBitmap.h" |
+#include "SkBitmapRegionDecoder.h" |
#include "SkCanvas.h" |
#include "SkCodec.h" |
#include "SkData.h" |
@@ -100,6 +101,28 @@ private: |
skiagm::GMRegistry::Factory fFactory; |
}; |
+// Allows for testing of various implementations of Android's BitmapRegionDecoder |
+class BRDSrc : public Src { |
+public: |
+ enum Mode { |
+ kFullImage_Mode, |
+ kDivisor_Mode, |
+ }; |
+ |
+ BRDSrc(Path, SkBitmapRegionDecoder::Strategy, Mode, SkColorType, uint32_t); |
+ |
+ Error draw(SkCanvas*) const override; |
+ SkISize size() const override; |
+ Name name() const override; |
+ bool veto(SinkFlags) const override; |
+private: |
+ Path fPath; |
+ SkBitmapRegionDecoder::Strategy fStrategy; |
+ Mode fMode; |
+ SkColorType fColorType; |
+ uint32_t fSampleSize; |
+}; |
+ |
class CodecSrc : public Src { |
public: |
enum Mode { |