diff options
author | Bertram <bertram@cegetel.net> | 2009-08-13 19:53:56 +0200 |
---|---|---|
committer | Bertram <bertram@cegetel.net> | 2009-08-13 19:53:56 +0200 |
commit | 3f21f53869044e5928ed2407a48ac28835da1cb1 (patch) | |
tree | e648cd56f32dca39ee231841c4377b6e6e02de22 /src/resources/image.h | |
parent | dd3df0c3d2adb3601abfedea2142c015cf3442c5 (diff) | |
download | mana-3f21f53869044e5928ed2407a48ac28835da1cb1.tar.gz mana-3f21f53869044e5928ed2407a48ac28835da1cb1.tar.bz2 mana-3f21f53869044e5928ed2407a48ac28835da1cb1.tar.xz mana-3f21f53869044e5928ed2407a48ac28835da1cb1.zip |
Cleaned up the image code a bit...
Diffstat (limited to 'src/resources/image.h')
-rw-r--r-- | src/resources/image.h | 90 |
1 files changed, 58 insertions, 32 deletions
diff --git a/src/resources/image.h b/src/resources/image.h index f497f608..824881a3 100644 --- a/src/resources/image.h +++ b/src/resources/image.h @@ -88,16 +88,6 @@ class Image : public Resource static Image *load(SDL_Surface *); /** - * Gets an scaled instance of an image. - * - * @param width The desired width of the scaled image. - * @param height The desired height of the scaled image. - * - * @return A new Image* object. - */ - Image* SDLgetScaledImage(int width, int height); - - /** * Frees the resources created by SDL. */ virtual void unload(); @@ -121,6 +111,17 @@ class Image : public Resource bool isAnOpenGLOne() const; /** + * Sets the alpha value of this image. + */ + virtual void setAlpha(float alpha); + + /** + * Returns the alpha value of this image. + */ + float getAlpha() const + { return mAlpha; } + + /** * Creates a new image with the desired clipping rectangle. * * @return <code>NULL</code> if creation failed and a valid @@ -128,17 +129,32 @@ class Image : public Resource */ virtual Image *getSubImage(int x, int y, int width, int height); + + // SDL only public functions + /** - * Sets the alpha value of this image. + * Gets an scaled instance of an image. + * + * @param width The desired width of the scaled image. + * @param height The desired height of the scaled image. + * + * @return A new Image* object. */ - virtual void setAlpha(float alpha); + Image* SDLgetScaledImage(int width, int height); /** - * Returns the alpha value of this image. + * Merges two image SDL_Surfaces together. This is for SDL use only, as + * reducing the number of surfaces that SDL has to render can cut down + * on the number of blit operations necessary, which in turn can help + * improve overall framerates. Don't use unless you are using it to + * reduce the number of overall layers that need to be drawn through SDL. */ - float getAlpha() const; + Image *SDLmerge(Image *image, int x, int y); #ifdef USE_OPENGL + + // OpenGL only public functions + /** * Sets the target image format. Use <code>false</code> for SDL and * <code>true</code> for OpenGL. @@ -150,20 +166,36 @@ class Image : public Resource static int getTextureType() { return mTextureType; } #endif - /** - * Merges two image SDL_Surfaces together. This is for SDL use only, as - * reducing the number of surfaces that SDL has to render can cut down - * on the number of blit operations necessary, which in turn can help - * improve overall framerates. Don't use unless you are using it to - * reduce the number of overall layers that need to be drawn through SDL. - */ - Image *merge(Image *image, int x, int y); - protected: + + // ----------------------- + // Generic protected members + // ----------------------- + + SDL_Rect mBounds; + bool mLoaded; + float mAlpha; + + // ----------------------- + // SDL protected members + // ----------------------- + + /** SDL Constructor */ + Image(SDL_Surface *image); + + static Image *_SDLload(SDL_Surface *tmpImage); + + + SDL_Surface *mImage; + + + // ----------------------- + // OpenGL protected members + // ----------------------- +#ifdef USE_OPENGL /** - * Constructor. + * OpenGL Constructor. */ -#ifdef USE_OPENGL Image(GLuint glimage, int width, int height, int texWidth, int texHeight); @@ -171,13 +203,9 @@ class Image : public Resource * Returns the first power of two equal or bigger than the input. */ static int powerOfTwo(int input); -#endif - Image(SDL_Surface *image); - SDL_Rect mBounds; - bool mLoaded; + static Image *_GLload(SDL_Surface *tmpImage); -#ifdef USE_OPENGL GLuint mGLImage; int mTexWidth, mTexHeight; @@ -185,8 +213,6 @@ class Image : public Resource static int mTextureType; static int mTextureSize; #endif - SDL_Surface *mImage; - float mAlpha; }; /** |