diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-06-10 16:54:18 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-06-10 17:25:07 +0300 |
commit | 3a28edfb7ac991ad70a7baf76f48218d9db89bcb (patch) | |
tree | 918e56537dd2f7c2ce94e97a297a83a55d6f6ea6 /src/resources/imagehelper.h | |
parent | f199b9ba7da47cb6f9aa95f843c0628621899aa9 (diff) | |
download | manaverse-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.gz manaverse-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.bz2 manaverse-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.tar.xz manaverse-3a28edfb7ac991ad70a7baf76f48218d9db89bcb.zip |
Split ImageHelper to ImageHelper, SDLImageHelper, OpenGLImageHelper.
Diffstat (limited to 'src/resources/imagehelper.h')
-rw-r--r-- | src/resources/imagehelper.h | 107 |
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 |