aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/images
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@google.com>2015-11-23 08:14:40 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-11-23 08:14:40 -0800
commitcf98fa93116cf5efcc42d48c22fb4bd76896acdc (patch)
treedc2eef08cc61ea8b73d4650c0633b215b5aab37f /src/images
parent93c69fff535075e86596a2b224f52f454b060be3 (diff)
Add SkPngChunkReader.
This class allows a client of SkCodec to read chunks in the data stream that are not recognized by libpng. This is used by Android to specify ninepatch data. Taken from SkImageDecoder::Peeker. Modify the name of the class and its method to be more specific to their use. Make SkImageDecoder::Peeker a subclass of the new class, to help stage the change in Android. Add a test to verify that it works. BUG=skia:4574 BUG=skia:3257 Committed: https://skia.googlesource.com/skia/+/3389e00136188800b98ca69488c0418c374fd78b Review URL: https://codereview.chromium.org/1040453002
Diffstat (limited to 'src/images')
-rw-r--r--src/images/SkImageDecoder.cpp2
-rw-r--r--src/images/SkImageDecoder_libpng.cpp7
2 files changed, 4 insertions, 5 deletions
diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp
index d2ad553769..221faf74d5 100644
--- a/src/images/SkImageDecoder.cpp
+++ b/src/images/SkImageDecoder.cpp
@@ -83,7 +83,7 @@ const char* SkImageDecoder::GetFormatName(Format format) {
return "Unknown Format";
}
-SkImageDecoder::Peeker* SkImageDecoder::setPeeker(Peeker* peeker) {
+SkPngChunkReader* SkImageDecoder::setPeeker(SkPngChunkReader* peeker) {
SkRefCnt_SafeAssign(fPeeker, peeker);
return peeker;
}
diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp
index 47963b5543..a03ed10453 100644
--- a/src/images/SkImageDecoder_libpng.cpp
+++ b/src/images/SkImageDecoder_libpng.cpp
@@ -124,10 +124,9 @@ static void sk_read_fn(png_structp png_ptr, png_bytep data, png_size_t length) {
#ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
static int sk_read_user_chunk(png_structp png_ptr, png_unknown_chunkp chunk) {
- SkImageDecoder::Peeker* peeker =
- (SkImageDecoder::Peeker*)png_get_user_chunk_ptr(png_ptr);
- // peek() returning true means continue decoding
- return peeker->peek((const char*)chunk->name, chunk->data, chunk->size) ?
+ SkPngChunkReader* peeker = (SkPngChunkReader*)png_get_user_chunk_ptr(png_ptr);
+ // readChunk() returning true means continue decoding
+ return peeker->readChunk((const char*)chunk->name, chunk->data, chunk->size) ?
1 : -1;
}
#endif