diff options
Diffstat (limited to 'engines/sword25/gfx')
-rw-r--r-- | engines/sword25/gfx/image/pngloader.cpp | 13 | ||||
-rw-r--r-- | engines/sword25/gfx/image/pngloader.h | 9 | ||||
-rw-r--r-- | engines/sword25/gfx/image/renderedimage.cpp | 4 | ||||
-rw-r--r-- | engines/sword25/gfx/image/swimage.cpp | 4 |
4 files changed, 21 insertions, 9 deletions
diff --git a/engines/sword25/gfx/image/pngloader.cpp b/engines/sword25/gfx/image/pngloader.cpp index f6c00b6968..d3c119b1a0 100644 --- a/engines/sword25/gfx/image/pngloader.cpp +++ b/engines/sword25/gfx/image/pngloader.cpp @@ -32,9 +32,6 @@ * */ -// Define to use ScummVM's PNG decoder, instead of libpng -#define USE_INTERNAL_PNG_DECODER - #ifndef USE_INTERNAL_PNG_DECODER // Disable symbol overrides so that we can use png.h #define FORBIDDEN_SYMBOL_ALLOW_ALL @@ -242,8 +239,8 @@ bool PNGLoader::decodeImage(const byte *fileDataPtr, uint fileSize, byte *&uncom return doDecodeImage(fileDataPtr + pngOffset, fileSize - pngOffset, uncompressedDataPtr, width, height, pitch); } -bool PNGLoader::doImageProperties(const byte *fileDataPtr, uint fileSize, int &width, int &height) { #ifndef USE_INTERNAL_PNG_DECODER +bool PNGLoader::doImageProperties(const byte *fileDataPtr, uint fileSize, int &width, int &height) { // Check for valid PNG signature if (!doIsCorrectImageFormat(fileDataPtr, fileSize)) return false; @@ -280,9 +277,7 @@ bool PNGLoader::doImageProperties(const byte *fileDataPtr, uint fileSize, int &w // Destroy libpng structures png_destroy_read_struct(&png_ptr, &info_ptr, NULL); -#else - // We don't need to read the image properties here... -#endif + return true; } @@ -292,5 +287,9 @@ bool PNGLoader::imageProperties(const byte *fileDataPtr, uint fileSize, int &wid return doImageProperties(fileDataPtr + pngOffset, fileSize - pngOffset, width, height); } +#else + // We don't need to read the image properties here... +#endif + } // End of namespace Sword25 diff --git a/engines/sword25/gfx/image/pngloader.h b/engines/sword25/gfx/image/pngloader.h index e0d68ff8b9..fea6ece0e9 100644 --- a/engines/sword25/gfx/image/pngloader.h +++ b/engines/sword25/gfx/image/pngloader.h @@ -40,6 +40,9 @@ namespace Sword25 { +// Define to use ScummVM's PNG decoder, instead of libpng +#define USE_INTERNAL_PNG_DECODER + /** * Class for loading PNG files, and PNG data embedded into savegames. * @@ -50,7 +53,9 @@ protected: PNGLoader() {} // Protected constructor to prevent instances static bool doDecodeImage(const byte *fileDataPtr, uint fileSize, byte *&uncompressedDataPtr, int &width, int &height, int &pitch); +#ifndef USE_INTERNAL_PNG_DECODER static bool doImageProperties(const byte *fileDataPtr, uint fileSize, int &width, int &height); +#endif public: @@ -72,6 +77,8 @@ public: byte *&pUncompressedData, int &width, int &height, int &pitch); + +#ifndef USE_INTERNAL_PNG_DECODER /** * Extract the properties of an image. * @param[in] fileDatePtr pointer to the image data @@ -86,6 +93,8 @@ public: static bool imageProperties(const byte *fileDatePtr, uint fileSize, int &width, int &height); +#endif + }; } // End of namespace Sword25 diff --git a/engines/sword25/gfx/image/renderedimage.cpp b/engines/sword25/gfx/image/renderedimage.cpp index 65ff1c703d..132c516c12 100644 --- a/engines/sword25/gfx/image/renderedimage.cpp +++ b/engines/sword25/gfx/image/renderedimage.cpp @@ -90,15 +90,17 @@ RenderedImage::RenderedImage(const Common::String &filename, bool &result) : return; } +#ifndef USE_INTERNAL_PNG_DECODER // Determine image properties - int pitch; if (!PNGLoader::imageProperties(pFileData, fileSize, _width, _height)) { error("Could not read image properties."); delete[] pFileData; return; } +#endif // Uncompress the image + int pitch; if (!PNGLoader::decodeImage(pFileData, fileSize, _data, _width, _height, pitch)) { error("Could not decode image."); delete[] pFileData; diff --git a/engines/sword25/gfx/image/swimage.cpp b/engines/sword25/gfx/image/swimage.cpp index 3b9b939eb3..0f3814eb54 100644 --- a/engines/sword25/gfx/image/swimage.cpp +++ b/engines/sword25/gfx/image/swimage.cpp @@ -56,14 +56,16 @@ SWImage::SWImage(const Common::String &filename, bool &result) : return; } +#ifndef USE_INTERNAL_PNG_DECODER // Determine image properties - int pitch; if (!PNGLoader::imageProperties(pFileData, fileSize, _width, _height)) { error("Could not read image properties."); return; } +#endif // Uncompress the image + int pitch; byte *pUncompressedData; if (!PNGLoader::decodeImage(pFileData, fileSize, pUncompressedData, _width, _height, pitch)) { error("Could not decode image."); |