Index: src/images/SkScaledBitmapSampler.h |
diff --git a/src/images/SkScaledBitmapSampler.h b/src/images/SkScaledBitmapSampler.h |
index e6c4577174c3551afbdf1b228b658d1b668113fe..90c4142bdfb444db79cd2059c1b03afe5328e9cb 100644 |
--- a/src/images/SkScaledBitmapSampler.h |
+++ b/src/images/SkScaledBitmapSampler.h |
@@ -34,11 +34,24 @@ public: |
kRGB_565 // 2 bytes per pixel |
}; |
+ struct Options { |
+ bool fDither; |
+ bool fPremultiplyAlpha; |
+ bool fSkipZeros; |
+ explicit Options(const SkImageDecoder &dec) |
+ : fDither(dec.getDitherImage()) |
+ , fPremultiplyAlpha(!dec.getRequireUnpremultipliedColors()) |
+ , fSkipZeros(dec.getSkipWritingZeroes()) |
+ { } |
+ }; |
+ |
// Given a dst bitmap (with pixels already allocated) and a src-config, |
// prepares iterator to process the src colors and write them into dst. |
// Returns false if the request cannot be fulfulled. |
bool begin(SkBitmap* dst, SrcConfig sc, const SkImageDecoder& decoder, |
const SkPMColor* = NULL); |
+ bool begin(SkBitmap* dst, SrcConfig sc, const Options& opts, |
+ const SkPMColor* = NULL); |
// call with row of src pixels, for y = 0...scaledHeight-1. |
// returns true if the row had non-opaque alpha in it |
bool next(const uint8_t* SK_RESTRICT src); |