summaryrefslogtreecommitdiff
path: root/src/resources/imagehelper.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-06-10 16:54:18 +0300
committerAndrei Karas <akaras@inbox.ru>2012-06-10 17:25:07 +0300
commit3a28edfb7ac991ad70a7baf76f48218d9db89bcb (patch)
tree918e56537dd2f7c2ce94e97a297a83a55d6f6ea6 /src/resources/imagehelper.h
parentf199b9ba7da47cb6f9aa95f843c0628621899aa9 (diff)
downloadmanaplus-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.gz
manaplus-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.bz2
manaplus-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.xz
manaplus-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.zip
Split ImageHelper to ImageHelper, SDLImageHelper, OpenGLImageHelper.
Diffstat (limited to 'src/resources/imagehelper.h')
-rw-r--r--src/resources/imagehelper.h107
1 files changed, 13 insertions, 94 deletions
diff --git a/src/resources/imagehelper.h b/src/resources/imagehelper.h
index 680794625..b0cbca7e6 100644
--- a/src/resources/imagehelper.h
+++ b/src/resources/imagehelper.h
@@ -24,26 +24,11 @@
#define IMAGEHELPER_H
#include "localconsts.h"
-#include "main.h"
#include "resources/resource.h"
#include <SDL.h>
-#ifdef USE_OPENGL
-
-/* The definition of OpenGL extensions by SDL is giving problems with recent
- * gl.h headers, since they also include these definitions. As we're not using
- * extensions anyway it's safe to just disable the SDL version.
- */
-//#define NO_SDL_GLEXT
-#define GL_GLEXT_PROTOTYPES 1
-
-#include <SDL_opengl.h>
-#endif
-
-#include <map>
-
class Dye;
class Image;
@@ -52,17 +37,12 @@ struct Position;
/**
* Defines a class for loading and storing images.
*/
-class ImageHelper : public Resource
+class ImageHelper
{
- friend class CompoundSprite;
- friend class Graphics;
- friend class Image;
-#ifdef USE_OPENGL
- friend class OpenGLGraphics;
- friend class OpenGL1Graphics;
-#endif
-
public:
+ virtual ~ImageHelper()
+ { }
+
/**
* Loads an image from an SDL_RWops structure.
*
@@ -71,7 +51,7 @@ class ImageHelper : public Resource
* @return <code>NULL</code> if an error occurred, a valid pointer
* otherwise.
*/
- static Resource *load(SDL_RWops *rw);
+ Resource *load(SDL_RWops *rw);
/**
* Loads an image from an SDL_RWops structure and recolors it.
@@ -82,89 +62,28 @@ class ImageHelper : public Resource
* @return <code>NULL</code> if an error occurred, a valid pointer
* otherwise.
*/
- static Resource *load(SDL_RWops *rw, Dye const &dye);
+ virtual Resource *load(SDL_RWops *rw, Dye const &dye) = 0;
/**
* Loads an image from an SDL surface.
*/
- static Image *load(SDL_Surface *);
+ virtual Image *load(SDL_Surface *) = 0;
- static SDL_Surface *convertTo32Bit(SDL_Surface* tmpImage);
+ virtual Image *createTextSurface(SDL_Surface *tmpImage,
+ float alpha) = 0;
- static Image *createTextSurface(SDL_Surface *tmpImage, float alpha);
+ virtual int useOpenGL() = 0;
- static void SDLSetEnableAlphaCache(bool n)
- { mEnableAlphaCache = n; }
+ SDL_Surface *convertTo32Bit(SDL_Surface* tmpImage);
- static bool SDLGetEnableAlphaCache()
- { return mEnableAlphaCache; }
+ void dumpSurfaceFormat(SDL_Surface *image);
static void setEnableAlpha(bool n)
{ mEnableAlpha = n; }
-#ifdef USE_OPENGL
-
- // OpenGL only public functions
-
- /**
- * Sets the target image format. Use <code>false</code> for SDL and
- * <code>true</code> for OpenGL.
- */
- static void setLoadAsOpenGL(int useOpenGL);
-
- static int getLoadAsOpenGL()
- { return mUseOpenGL; }
-
- static int getTextureType()
- { return mTextureType; }
-
- static int getInternalTextureType()
- { return mInternalTextureType; }
-
- static void setInternalTextureType(int n)
- { mInternalTextureType = n; }
-
- static void setBlur(bool n)
- { mBlur = n; }
-
- static int mTextureType;
-
- static int mInternalTextureType;
-
- static void dumpSurfaceFormat(SDL_Surface *image);
-
- static SDL_Surface* SDLDuplicateSurface(SDL_Surface* tmpImage);
-
-#endif
-
- /**
- * Tells if the image was loaded using OpenGL or SDL
- * @return true if OpenGL, false if SDL.
- */
- static int useOpenGL();
-
protected:
- /** SDL_Surface to SDL_Surface Image loader */
- static Image *_SDLload(SDL_Surface *tmpImage);
-
- static bool mEnableAlphaCache;
static bool mEnableAlpha;
-
- // -----------------------
- // OpenGL protected members
- // -----------------------
-#ifdef USE_OPENGL
- /**
- * Returns the first power of two equal or bigger than the input.
- */
- static int powerOfTwo(int input);
-
- static Image *_GLload(SDL_Surface *tmpImage);
-
- static int mUseOpenGL;
- static int mTextureSize;
- static bool mBlur;
-#endif
};
+extern ImageHelper *imageHelper;
#endif