summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/image.cpp15
-rw-r--r--src/resources/image.h18
2 files changed, 13 insertions, 20 deletions
diff --git a/src/resources/image.cpp b/src/resources/image.cpp
index b7e6c200..7e592198 100644
--- a/src/resources/image.cpp
+++ b/src/resources/image.cpp
@@ -576,11 +576,17 @@ Image *Image::getSubImage(int x, int y, int width, int height)
// Create a new clipped sub-image
#ifdef USE_OPENGL
if (mUseOpenGL)
- return new SubImage(this, mGLImage, x, y, width, height,
+ return new SubImage(this, mGLImage,
+ mBounds.x + x,
+ mBounds.y + y,
+ width, height,
mTexWidth, mTexHeight);
#endif
- return new SubImage(this, mSDLSurface, x, y, width, height);
+ return new SubImage(this, mSDLSurface,
+ mBounds.x + x,
+ mBounds.y + y,
+ width, height);
}
void Image::SDLterminateAlphaCache()
@@ -647,8 +653,3 @@ SubImage::~SubImage()
#endif
mParent->decRef();
}
-
-Image *SubImage::getSubImage(int x, int y, int w, int h)
-{
- return mParent->getSubImage(mBounds.x + x, mBounds.y + y, w, h);
-}
diff --git a/src/resources/image.h b/src/resources/image.h
index b1831ada..b762bf2a 100644
--- a/src/resources/image.h
+++ b/src/resources/image.h
@@ -84,7 +84,7 @@ class Image : public Resource
/**
* Frees the resources created by SDL.
*/
- virtual void unload();
+ void unload();
/**
* Tells is the image is loaded
@@ -95,13 +95,13 @@ class Image : public Resource
/**
* Returns the width of the image.
*/
- virtual int getWidth() const
+ int getWidth() const
{ return mBounds.w; }
/**
* Returns the height of the image.
*/
- virtual int getHeight() const
+ int getHeight() const
{ return mBounds.h; }
/**
@@ -113,7 +113,7 @@ class Image : public Resource
/**
* Sets the alpha value of this image.
*/
- virtual void setAlpha(float alpha);
+ void setAlpha(float alpha);
/**
* Returns the alpha value of this image.
@@ -127,7 +127,7 @@ class Image : public Resource
* @return <code>NULL</code> if creation failed and a valid
* object otherwise.
*/
- virtual Image *getSubImage(int x, int y, int width, int height);
+ Image *getSubImage(int x, int y, int width, int height);
/**
* Tells if the image has got an alpha channel
@@ -270,14 +270,6 @@ class SubImage : public Image
~SubImage();
- /**
- * Creates a new image with the desired clipping rectangle.
- *
- * @return <code>NULL</code> if creation failed and a valid
- * image otherwise.
- */
- Image *getSubImage(int x, int y, int width, int height);
-
private:
Image *mParent;
};