From 3a28edfb7ac991ad70a7baf76f48218d9db89bcb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 10 Jun 2012 16:54:18 +0300 Subject: Split ImageHelper to ImageHelper, SDLImageHelper, OpenGLImageHelper. --- src/resources/imagehelper.h | 107 ++++++-------------------------------------- 1 file changed, 13 insertions(+), 94 deletions(-) (limited to 'src/resources/imagehelper.h') 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 -#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 -#endif - -#include - 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 NULL 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 NULL 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 false for SDL and - * true 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 -- cgit v1.2.3-60-g2f50