From 7cc8811a5c9b63703c2131841745cd5b7e5f009a Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 24 Oct 2010 01:32:15 +0000 Subject: SWORD25: Merge classes PNGLoader, ImageLoader and ImageLoaderManager This looses some flexibility when it comes to supporting other image formats. But since the game does not use other image formats, this seems rather irrelevant, compared to how much simpler the code now is. svn-id: r53755 --- engines/sword25/gfx/image/imageloader.cpp | 106 ------------------------------ 1 file changed, 106 deletions(-) delete mode 100644 engines/sword25/gfx/image/imageloader.cpp (limited to 'engines/sword25/gfx/image/imageloader.cpp') diff --git a/engines/sword25/gfx/image/imageloader.cpp b/engines/sword25/gfx/image/imageloader.cpp deleted file mode 100644 index 850507842e..0000000000 --- a/engines/sword25/gfx/image/imageloader.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -/* - * This code is based on Broken Sword 2.5 engine - * - * Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer - * - * Licensed under GNU GPL v2 - * - */ - -#include "sword25/gfx/image/imageloader.h" - -#include "sword25/gfx/image/pngloader.h" - -DECLARE_SINGLETON(Sword25::ImageLoaderManager) - -namespace Sword25 { - -#define BS_LOG_PREFIX "IMAGELOADER" - - -bool ImageLoaderManager::loadImage(const byte *pFileData, uint fileSize, - GraphicEngine::COLOR_FORMATS colorFormat, - byte *&pUncompressedData, - int &width, int &height, - int &pitch) { - - // Find a suitable ImageLoader and decode the image - ImageLoader *pLoader = findSuitableImageLoader(pFileData, fileSize); - if (pLoader) { - return pLoader->decodeImage(pFileData, fileSize, - colorFormat, - pUncompressedData, - width, height, - pitch); - } - - return false; -} - -bool ImageLoaderManager::extractImageProperties(const byte *pFileData, uint fileSize, - GraphicEngine::COLOR_FORMATS &colorFormat, - int &width, int &height) { - - // Find a suitable ImageLoader and extra the image properties - ImageLoader *pLoader = findSuitableImageLoader(pFileData, fileSize); - if (pLoader) { - return pLoader->imageProperties(pFileData, fileSize, - colorFormat, - width, height); - } - - return false; -} - -ImageLoaderManager::ImageLoaderManager() { - _imageLoaderList.push_back(new PNGLoader()); -} - -ImageLoaderManager::~ImageLoaderManager() { - while (!_imageLoaderList.empty()) { - delete _imageLoaderList.back(); - _imageLoaderList.pop_back(); - } -} - -ImageLoader *ImageLoaderManager::findSuitableImageLoader(const byte *pFileData, uint fileSize) { - // Iterate over all registered ImageLoader instances until we find - // one that supports the image. - Common::List::iterator iter = _imageLoaderList.begin(); - for (; iter != _imageLoaderList.end(); ++iter) { - if ((*iter)->isCorrectImageFormat(pFileData, fileSize)) { - return (*iter); - } - } - - // No suitable ImageLoader was found :-( - BS_LOG_ERRORLN("Could not find suitable image loader for image data."); - return NULL; -} - -} // End of namespace Sword25 -- cgit v1.2.3