summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-05-05 23:08:18 +0300
committerAndrei Karas <akaras@inbox.ru>2012-05-05 23:08:18 +0300
commit6d8828b47e291c0e85645adb60c8969a3f8facf4 (patch)
tree511891a798232bf886c93b9f5395fb7cbb933bbf /src/resources
parent38f2d53aa706e8931c740b0d2ecd15f693b8922c (diff)
downloadmv-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.gz
mv-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.bz2
mv-6d8828b47e291c0e85645adb60c8969a3f8facf4.tar.xz
mv-6d8828b47e291c0e85645adb60c8969a3f8facf4.zip
Improve images drawing and remove some useless code.
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/imageloader.cpp117
-rw-r--r--src/resources/imageloader.h70
2 files changed, 0 insertions, 187 deletions
diff --git a/src/resources/imageloader.cpp b/src/resources/imageloader.cpp
deleted file mode 100644
index decf17189..000000000
--- a/src/resources/imageloader.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2007-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2012 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * 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
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#include "resources/imageloader.h"
-
-#include "resources/image.h"
-#include "resources/resourcemanager.h"
-
-#include <guichan/color.hpp>
-
-#include <guichan/sdl/sdlpixel.hpp>
-
-#include "debug.h"
-
-#ifdef free
-#undef free
-#endif
-
-ProxyImage::ProxyImage(SDL_Surface *s):
- mImage(nullptr),
- mSDLImage(s)
-{
-}
-
-ProxyImage::~ProxyImage()
-{
- free();
-}
-
-void ProxyImage::free()
-{
- if (mSDLImage)
- {
- SDL_FreeSurface(mSDLImage);
- mSDLImage = nullptr;
- }
- else
- {
- delete mImage;
- mImage = nullptr;
- }
-}
-
-int ProxyImage::getWidth() const
-{
- if (mSDLImage)
- return mSDLImage->w;
- else if (mImage)
- return mImage->mBounds.w;
- else
- return 0;
-}
-
-int ProxyImage::getHeight() const
-{
- if (mSDLImage)
- return mSDLImage->h;
- else if (mImage)
- return mImage->mBounds.h;
- else
- return 0;
-}
-
-gcn::Color ProxyImage::getPixel(int x, int y)
-{
- return gcn::SDLgetPixel(mSDLImage, x, y);
-}
-
-void ProxyImage::putPixel(int x, int y, gcn::Color const &color)
-{
- if (!mSDLImage)
- return;
- gcn::SDLputPixel(mSDLImage, x, y, color);
-}
-
-void ProxyImage::convertToDisplayFormat()
-{
- if (!mSDLImage)
- return;
-
- /* The picture is most probably full of the pink pixels Guichan uses for
- transparency, as this function will only be called when setting an image
- font. Get rid of them. */
- SDL_SetColorKey(mSDLImage, SDL_SRCCOLORKEY,
- SDL_MapRGB(mSDLImage->format, 255, 0, 255));
- mImage = ::Image::load(mSDLImage);
- SDL_FreeSurface(mSDLImage);
- mSDLImage = nullptr;
-}
-
-gcn::Image *ImageLoader::load(const std::string &filename, bool convert)
-{
- ResourceManager *resman = ResourceManager::getInstance();
- ProxyImage *i = new ProxyImage(resman->loadSDLSurface(filename));
- if (convert)
- i->convertToDisplayFormat();
- return i;
-}
diff --git a/src/resources/imageloader.h b/src/resources/imageloader.h
deleted file mode 100644
index 1dcd046ca..000000000
--- a/src/resources/imageloader.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2007-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2012 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * 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
- * 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, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef IMAGELOADER_H
-#define IMAGELOADER_H
-
-#include <guichan/image.hpp>
-#include <guichan/imageloader.hpp>
-
-#include <string>
-
-class Image;
-struct SDL_Surface;
-
-class ProxyImage : public gcn::Image
-{
- public:
- ProxyImage(SDL_Surface *);
- ~ProxyImage();
-
- void free();
- int getWidth() const;
- int getHeight() const;
- gcn::Color getPixel(int x, int y);
- void putPixel(int x, int y, gcn::Color const &color);
- void convertToDisplayFormat();
-
- /**
- * Gets the image handled by this proxy.
- */
- ::Image *getImage() const
- { return mImage; }
-
- private:
- ::Image *mImage; /**< The real image. */
-
- /**
- * An SDL surface kept around until Guichan is done reading pixels from
- * an OpenGL texture.
- */
- SDL_Surface *mSDLImage;
-};
-
-class ImageLoader : public gcn::ImageLoader
-{
- public:
- gcn::Image *load(const std::string &filename,
- bool convertToDisplayFormat);
-};
-
-#endif