diff options
author | Eugene Sandulenko | 2010-09-14 20:02:33 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-10-12 23:52:13 +0000 |
commit | 7dfea5ee4d2f0ef5dfd9dec324bd52cc06d058d3 (patch) | |
tree | 0f16874905a618772ec50cf8330a5222ee2acfb5 /engines/sword25/gfx/image/swimage.cpp | |
parent | 69cae2e7dd5f52801093a4ab069924673f6e307c (diff) | |
download | scummvm-rg350-7dfea5ee4d2f0ef5dfd9dec324bd52cc06d058d3.tar.gz scummvm-rg350-7dfea5ee4d2f0ef5dfd9dec324bd52cc06d058d3.tar.bz2 scummvm-rg350-7dfea5ee4d2f0ef5dfd9dec324bd52cc06d058d3.zip |
SWORD25: Moved glimage and swimage to image/
svn-id: r53357
Diffstat (limited to 'engines/sword25/gfx/image/swimage.cpp')
-rw-r--r-- | engines/sword25/gfx/image/swimage.cpp | 135 |
1 files changed, 135 insertions, 0 deletions
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<PackageManager *>(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 |