Add SkCodec, including PNG implementation.
authorscroggo <scroggo@google.com>
Tue, 3 Mar 2015 16:59:20 +0000 (08:59 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 3 Mar 2015 16:59:20 +0000 (08:59 -0800)
commitf24f2247c25b842327e12c70e44efe4cc1b28dfa
tree3dfa329ae0504ba31ed3e1fe6ee46b4db4f7a5c4
parent0aebf5d0d3a2aef38a71885c85303583fdeaad57
Add SkCodec, including PNG implementation.

DM:
Add a flag to use SkCodec instead of SkImageDecoder.

SkCodec:
Base class for codecs, allowing creation from an SkStream or an SkData.
An SkCodec, on creation, knows properties of the data like its width and height. Further calls can be used to generate the image.
TODO: Add scanline iterator

SkPngCodec:
New decoder for png. Wraps libpng. The code has been repurposed from SkImageDecoder_libpng.
TODO: Handle other destination colortypes
TODO: Substitute the transpose color
TODO: Allow silencing warnings
TODO: Use RGB instead of filler?
TODO: sRGB

SkSwizzler:
Simplified version of SkScaledSampler. Unlike the sampler, this object does no sampling.
TODO: Implement other swizzles.

Requires a gclient sync to pull down libpng.

BUG=skia:3257

Committed: https://skia.googlesource.com/skia/+/ca358852b4fed656d11107b2aaf28318a4518b49
(and then reverted)

Review URL: https://codereview.chromium.org/930283002
15 files changed:
DEPS
dm/DMSrcSink.cpp
gyp/codec.gyp [new file with mode: 0644]
gyp/common_variables.gypi
gyp/libpng.gyp
gyp/skia_lib.gyp
include/codec/SkCodec.h [new file with mode: 0644]
src/codec/SkCodec.cpp [new file with mode: 0644]
src/codec/SkCodec_libpng.cpp [new file with mode: 0644]
src/codec/SkCodec_libpng.h [new file with mode: 0644]
src/codec/SkSwizzler.cpp [new file with mode: 0644]
src/codec/SkSwizzler.h [new file with mode: 0644]
third_party/libpng/LICENSE [new file with mode: 0644]
third_party/libpng/README.google [new file with mode: 0644]
third_party/libpng/pnglibconf.h [new file with mode: 0644]