diff options
author | Matthew Hoops | 2012-09-12 20:18:13 -0400 |
---|---|---|
committer | Matthew Hoops | 2012-09-12 20:18:13 -0400 |
commit | d5ed8b1901b88e361a2a420a9daf586f6089a36b (patch) | |
tree | d19e4dd7baf33b7447d69d8ad8d3c25732a69698 /graphics/decoders | |
parent | ff51a7661d7a2cb296b987edfc3d81727160e627 (diff) | |
parent | 8808393b3a3428df2946d7967e52aba084c8ffe5 (diff) | |
download | scummvm-rg350-d5ed8b1901b88e361a2a420a9daf586f6089a36b.tar.gz scummvm-rg350-d5ed8b1901b88e361a2a420a9daf586f6089a36b.tar.bz2 scummvm-rg350-d5ed8b1901b88e361a2a420a9daf586f6089a36b.zip |
Merge remote branch 'upstream/master' into pegasus
Conflicts:
AUTHORS
Diffstat (limited to 'graphics/decoders')
-rw-r--r-- | graphics/decoders/image_decoder.h | 7 | ||||
-rw-r--r-- | graphics/decoders/pict.cpp | 12 | ||||
-rw-r--r-- | graphics/decoders/pict.h | 4 | ||||
-rw-r--r-- | graphics/decoders/png.cpp | 1 |
4 files changed, 15 insertions, 9 deletions
diff --git a/graphics/decoders/image_decoder.h b/graphics/decoders/image_decoder.h index 830645d361..49e31c6e3a 100644 --- a/graphics/decoders/image_decoder.h +++ b/graphics/decoders/image_decoder.h @@ -78,10 +78,15 @@ public: * The palette's format is the same as PaletteManager's palette * (interleaved RGB values). * - * @return the decoded palette, or 0 if no palette is present + * @return the decoded palette, or undefined if no palette is present */ virtual const byte *getPalette() const { return 0; } + /** + * Query if the decoded image has a palette. + */ + virtual bool hasPalette() const { return getPaletteColorCount() != 0; } + /** Return the starting index of the palette. */ virtual byte getPaletteStartIndex() const { return 0; } /** Return the number of colors in the palette. */ diff --git a/graphics/decoders/pict.cpp b/graphics/decoders/pict.cpp index 7eddd3b893..9e619df208 100644 --- a/graphics/decoders/pict.cpp +++ b/graphics/decoders/pict.cpp @@ -292,12 +292,12 @@ struct PackBitsRectData { uint16 mode; }; -void PICTDecoder::unpackBitsRect(Common::SeekableReadStream &stream, bool hasPalette) { +void PICTDecoder::unpackBitsRect(Common::SeekableReadStream &stream, bool withPalette) { PackBitsRectData packBitsData; - packBitsData.pixMap = readPixMap(stream, !hasPalette); + packBitsData.pixMap = readPixMap(stream, !withPalette); // Read in the palette if there is one present - if (hasPalette) { + if (withPalette) { // See http://developer.apple.com/legacy/mac/library/documentation/mac/QuickDraw/QuickDraw-267.html stream.readUint32BE(); // seed stream.readUint16BE(); // flags @@ -469,10 +469,10 @@ void PICTDecoder::outputPixelBuffer(byte *&out, byte value, byte bitsPerPixel) { } } -void PICTDecoder::skipBitsRect(Common::SeekableReadStream &stream, bool hasPalette) { +void PICTDecoder::skipBitsRect(Common::SeekableReadStream &stream, bool withPalette) { // Step through a PackBitsRect/DirectBitsRect function - if (!hasPalette) + if (!withPalette) stream.readUint32BE(); uint16 rowBytes = stream.readUint16BE(); @@ -492,7 +492,7 @@ void PICTDecoder::skipBitsRect(Common::SeekableReadStream &stream, bool hasPalet stream.readUint16BE(); // pixelSize stream.skip(16); - if (hasPalette) { + if (withPalette) { stream.readUint32BE(); stream.readUint16BE(); stream.skip((stream.readUint16BE() + 1) * 8); diff --git a/graphics/decoders/pict.h b/graphics/decoders/pict.h index 7497e3963f..6f0d86c7a1 100644 --- a/graphics/decoders/pict.h +++ b/graphics/decoders/pict.h @@ -88,9 +88,9 @@ private: bool _continueParsing; // Utility Functions - void unpackBitsRect(Common::SeekableReadStream &stream, bool hasPalette); + void unpackBitsRect(Common::SeekableReadStream &stream, bool withPalette); void unpackBitsLine(byte *out, uint32 length, Common::SeekableReadStream *stream, byte bitsPerPixel, byte bytesPerPixel); - void skipBitsRect(Common::SeekableReadStream &stream, bool hasPalette); + void skipBitsRect(Common::SeekableReadStream &stream, bool withPalette); void decodeCompressedQuickTime(Common::SeekableReadStream &stream); void outputPixelBuffer(byte *&out, byte value, byte bitsPerPixel); diff --git a/graphics/decoders/png.cpp b/graphics/decoders/png.cpp index bfaab6dc35..4f917b44b1 100644 --- a/graphics/decoders/png.cpp +++ b/graphics/decoders/png.cpp @@ -191,6 +191,7 @@ bool PNGDecoder::loadStream(Common::SeekableReadStream &stream) { } // After the transformations have been registered, the image data is read again. + png_set_interlace_handling(pngPtr); png_read_update_info(pngPtr, infoPtr); png_get_IHDR(pngPtr, infoPtr, &w, &h, &bitDepth, &colorType, NULL, NULL, NULL); width = w; |