SkScaledCodec class
authoremmaleer <emmaleer@google.com>
Fri, 14 Aug 2015 12:46:08 +0000 (05:46 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 14 Aug 2015 12:46:09 +0000 (05:46 -0700)
commitb157917507d4f7d2651f0aeb566d31603cc02240
treee9a05dc19b456c1c8582fbd80daa0253fb5bfdf9
parente8445307ac33eddcf04457ae21040e47dc9c2a97
SkScaledCodec class

This class does scaling by using a scanlineDecoder.
getScanlines and skipScanlines are used for y sampling,
the swizzler is used for x sampling

this class is currently only working for png and jpeg images
I will update other Codec types to work soon

For SkJpegCodec to implement width wise swizzling it now
uses a swizzler. I ran performance tests on this change.
Here are the performance test results:
https://docs.google.com/a/google.com/spreadsheets/d/1D7-Q_GXD_dI68LZO005NNvb8Wq2Ee0wEBEPG72671yw/edit?usp=sharing

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/0944100ac89f797714eeae0cf2875e2335ff52ee

Committed: https://skia.googlesource.com/skia/+/d518ea7927f9f4e0ed5b4134d1b4f48243855a47

Review URL: https://codereview.chromium.org/1260673002
16 files changed:
dm/DM.cpp
dm/DMSrcSink.cpp
gyp/codec.gyp
include/codec/SkCodec.h
include/codec/SkScaledCodec.h [new file with mode: 0644]
include/codec/SkScanlineDecoder.h
src/codec/SkBmpStandardCodec.cpp
src/codec/SkCodec_libgif.cpp
src/codec/SkCodec_libpng.cpp
src/codec/SkCodec_libpng.h
src/codec/SkCodec_wbmp.cpp
src/codec/SkJpegCodec.cpp
src/codec/SkJpegCodec.h
src/codec/SkScaledCodec.cpp [new file with mode: 0644]
src/codec/SkSwizzler.cpp
src/codec/SkSwizzler.h