From 7dfea5ee4d2f0ef5dfd9dec324bd52cc06d058d3 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 14 Sep 2010 20:02:33 +0000 Subject: SWORD25: Moved glimage and swimage to image/ svn-id: r53357 --- engines/sword25/gfx/image/swimage.cpp | 135 ++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 engines/sword25/gfx/image/swimage.cpp (limited to 'engines/sword25/gfx/image/swimage.cpp') diff --git a/engines/sword25/gfx/image/swimage.cpp b/engines/sword25/gfx/image/swimage.cpp new file mode 100644 index 0000000000..a6a6468f65 --- /dev/null +++ b/engines/sword25/gfx/image/swimage.cpp @@ -0,0 +1,135 @@ +/* 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 + * + */ + +// ----------------------------------------------------------------------------- +// INCLUDES +// ----------------------------------------------------------------------------- + +#include "sword25/package/packagemanager.h" +#include "sword25/gfx/image/imageloader.h" + +#include "sword25/gfx/opengl/swimage.h" + +namespace Sword25 { + +#define BS_LOG_PREFIX "SWIMAGE" + + +// ----------------------------------------------------------------------------- +// CONSTRUCTION / DESTRUCTION +// ----------------------------------------------------------------------------- + +SWImage::SWImage(const Common::String &filename, bool &result) : + _imageDataPtr(0), + _width(0), + _height(0) { + result = false; + + PackageManager *pPackage = static_cast(Kernel::GetInstance()->GetService("package")); + BS_ASSERT(pPackage); + + // Datei laden + byte *pFileData; + uint fileSize; + if (!(pFileData = (byte *)pPackage->GetFile(filename, &fileSize))) { + BS_LOG_ERRORLN("File \"%s\" could not be loaded.", filename.c_str()); + return; + } + + // Bildeigenschaften bestimmen + GraphicEngine::COLOR_FORMATS colorFormat; + int pitch; + if (!ImageLoader::ExtractImageProperties(pFileData, fileSize, colorFormat, _width, _height)) { + BS_LOG_ERRORLN("Could not read image properties."); + return; + } + + // Das Bild dekomprimieren + byte *pUncompressedData; + if (!ImageLoader::LoadImage(pFileData, fileSize, GraphicEngine::CF_ARGB32, pUncompressedData, _width, _height, pitch)) { + BS_LOG_ERRORLN("Could not decode image."); + return; + } + + // Dateidaten freigeben + delete[] pFileData; + + _imageDataPtr = (uint *)pUncompressedData; + + result = true; + return; +} + +// ----------------------------------------------------------------------------- + +SWImage::~SWImage() { + delete[] _imageDataPtr; +} + + +// ----------------------------------------------------------------------------- + +bool SWImage::blit(int posX, int posY, + int flipping, + Common::Rect *pPartRect, + uint color, + int width, int height) { + BS_LOG_ERRORLN("Blit() is not supported."); + return false; +} + +// ----------------------------------------------------------------------------- + +bool SWImage::fill(const Common::Rect *pFillRect, uint color) { + BS_LOG_ERRORLN("Fill() is not supported."); + return false; +} + +// ----------------------------------------------------------------------------- + +bool SWImage::setContent(const byte *pixeldata, uint size, uint offset, uint stride) { + BS_LOG_ERRORLN("SetContent() is not supported."); + return false; +} + +// ----------------------------------------------------------------------------- + +uint SWImage::getPixel(int x, int y) { + BS_ASSERT(x >= 0 && x < _width); + BS_ASSERT(y >= 0 && y < _height); + + return _imageDataPtr[_width * y + x]; +} + +} // End of namespace Sword25 -- cgit v1.2.3 From 97164f058c28d4258dfba7a0fccec8b6930e71e4 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 14 Sep 2010 20:08:01 +0000 Subject: SWORD25: Adjust the paths accordingly svn-id: r53359 --- engines/sword25/gfx/image/swimage.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'engines/sword25/gfx/image/swimage.cpp') diff --git a/engines/sword25/gfx/image/swimage.cpp b/engines/sword25/gfx/image/swimage.cpp index a6a6468f65..b135be7209 100644 --- a/engines/sword25/gfx/image/swimage.cpp +++ b/engines/sword25/gfx/image/swimage.cpp @@ -38,8 +38,7 @@ #include "sword25/package/packagemanager.h" #include "sword25/gfx/image/imageloader.h" - -#include "sword25/gfx/opengl/swimage.h" +#include "sword25/gfx/image/swimage.h" namespace Sword25 { -- cgit v1.2.3 From 8582c1ad5770b6385381f524a4610934d115cd88 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 25 Sep 2010 19:48:26 +0000 Subject: SWORD25: Enforse code naming conventions in PackageManager and Sword25Engine svn-id: r53380 --- engines/sword25/gfx/image/swimage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/sword25/gfx/image/swimage.cpp') diff --git a/engines/sword25/gfx/image/swimage.cpp b/engines/sword25/gfx/image/swimage.cpp index b135be7209..ac4463ea16 100644 --- a/engines/sword25/gfx/image/swimage.cpp +++ b/engines/sword25/gfx/image/swimage.cpp @@ -61,7 +61,7 @@ SWImage::SWImage(const Common::String &filename, bool &result) : // Datei laden byte *pFileData; uint fileSize; - if (!(pFileData = (byte *)pPackage->GetFile(filename, &fileSize))) { + if (!(pFileData = (byte *)pPackage->getFile(filename, &fileSize))) { BS_LOG_ERRORLN("File \"%s\" could not be loaded.", filename.c_str()); return; } -- cgit v1.2.3