Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Unified Diff: include/codec/SkScaledCodec.h

Issue 1321433002: Add subsetting to SkScaledCodec (Closed) Base URL: https://skia.googlesource.com/skia.git@gif-scan
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/codec/SkScaledCodec.h
diff --git a/include/codec/SkScaledCodec.h b/include/codec/SkScaledCodec.h
index 6e569d5d381b532d11ef6b1962eba1d3b311c39c..e9ab4a23ce468c5ac4311a0987ea3c6bb5e6556f 100644
--- a/include/codec/SkScaledCodec.h
+++ b/include/codec/SkScaledCodec.h
@@ -38,7 +38,7 @@ public:
return true;
}
- static void ComputeSampleSize(const SkImageInfo& dstInfo, const SkImageInfo& srcInfo,
+ static void ComputeSampleSize(const SkISize& dstSize, const SkISize& srcSize,
int* sampleSizeX, int* sampleSizeY);
protected:
@@ -47,6 +47,8 @@ protected:
*/
SkISize onGetScaledDimensions(float desiredScale) const override;
+ bool onGetScaledSubsetDimensions(float desiredScale, Options* options) const override;
+
Result onGetPixels(const SkImageInfo&, void*, size_t, const Options&, SkPMColor*, int*, int*)
override;
SkEncodedFormat onGetEncodedFormat() const override {
@@ -63,6 +65,13 @@ protected:
private:
+ Result nativeDecode(const SkImageInfo& scaledInfo, void* dst, size_t rowBytes,
+ const SkIRect& scaledSubsetRect, ZeroInitialized zeroInit, int* rowsDecoded);
+
+ Result sampledDecode(const SkImageInfo& decodeInfo, void* dst, size_t rowBytes,
+ const SkIRect& subsetRect, const SkIRect& scaledSubsetRect, int sampleX, int sampleY,
+ ZeroInitialized zeroInit, int* rowsDecoded);
+
SkAutoTDelete<SkCodec> fCodec;
explicit SkScaledCodec(SkCodec*);

Powered by Google App Engine
This is Rietveld 408576698