| Index: include/codec/SkScaledCodec.h
|
| diff --git a/include/codec/SkScaledCodec.h b/include/codec/SkScaledCodec.h
|
| index 028706bc9400bfb7028ba75699029d2454277484..969846b7b5633940e586aefbfbb95f046088e483 100644
|
| --- a/include/codec/SkScaledCodec.h
|
| +++ b/include/codec/SkScaledCodec.h
|
| @@ -33,6 +33,9 @@ protected:
|
| */
|
| SkISize onGetScaledDimensions(float desiredScale) const override;
|
| bool onDimensionsSupported(const SkISize&) override;
|
| + bool onSubsetSupported(const SkIRect&, bool) override { return true; }
|
| + bool onScaledSubsetSupported(const Options&, bool) override;
|
| + bool onGetScaledSubsetDimensions(float desiredScale, const Options& options) const override;
|
|
|
| Result onGetPixels(const SkImageInfo&, void*, size_t, const Options&, SkPMColor*, int*, int*)
|
| override;
|
| @@ -50,6 +53,42 @@ protected:
|
|
|
| private:
|
|
|
| + /**
|
| + * Perform the decode with scaling handled by the native codec.
|
| + * Assumes startScanlineDecoder() has already been called.
|
| + *
|
| + * @param scaledInfo Destination image info, containing dimensions that
|
| + * represent the full size image, scaled to the desired
|
| + * scale, before any subset has been applied.
|
| + * @param dst Pointer to destination pixel memory.
|
| + * @param rowBytes Stride length in destination memory.
|
| + * @param scaledSubsetRect Desired subset in terms of the scaled dimensions.
|
| + * @param zeroInit Indicates if destination memory is zero initialized.
|
| + * @param rowsDecoded Out parameter to specify how many rows were
|
| + * successfully decoded on an incomplete decode.
|
| + */
|
| + Result nativeDecode(const SkImageInfo& scaledInfo, void* dst, size_t rowBytes,
|
| + const SkIRect& scaledSubsetRect, ZeroInitialized zeroInit, int* rowsDecoded);
|
| +
|
| + /**
|
| + * Perform the decode with sampling as the scaling method.
|
| + * Assumes startScanlineDecoder() has already been called.
|
| + *
|
| + * @param scaledSubsetInfo Destination image info, containing dimensions that
|
| + * represent the scaled and subsetted result.
|
| + * @param dst Pointer to destination pixel memory.
|
| + * @param rowBytes Stride length in destination memory.
|
| + * @param subsetRect Desired subset in terms of the original dimensions.
|
| + * @param sampleX Sample factor in the x-dimension.
|
| + * @param sampleY Sample factor in the y-dimension.
|
| + * @param zeroInit Indicates if destination memory is zero initialized.
|
| + * @param rowsDecoded Out parameter to specify how many rows were
|
| + * successfully decoded on an incomplete decode.
|
| + */
|
| + Result sampledDecode(const SkImageInfo& scaledSubsetInfo, void* dst, size_t rowBytes,
|
| + const SkIRect& subsetRect, int sampleX, int sampleY, ZeroInitialized zeroInit,
|
| + int* rowsDecoded);
|
| +
|
| SkAutoTDelete<SkCodec> fCodec;
|
|
|
| explicit SkScaledCodec(SkCodec*);
|
|
|