summaryrefslogtreecommitdiff
path: root/src/resources/image.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/image.h')
-rw-r--r--src/resources/image.h44
1 files changed, 28 insertions, 16 deletions
diff --git a/src/resources/image.h b/src/resources/image.h
index 0452cd4a..d5c98c5d 100644
--- a/src/resources/image.h
+++ b/src/resources/image.h
@@ -25,8 +25,7 @@
#define _TMW_IMAGE_H
#include "resource.h"
-//#include <SDL/SDL.h>
-#include <allegro.h>
+#include <SDL.h>
// Forward declarations
class SubImage;
@@ -41,7 +40,7 @@ class Image : public Resource
/**
* Constructor.
*/
- Image(BITMAP *image);
+ Image(SDL_Surface *image);
/**
* Destructor.
@@ -89,17 +88,17 @@ class Image : public Resource
* @return <code>true</code> if the image was blitted properly
* <code>false</code> otherwise.
*/
- virtual bool draw(BITMAP *screen, int x, int y);
+ virtual bool draw(SDL_Surface *screen, int x, int y);
/**
* Does a pattern fill on the given area.
*/
- virtual void drawPattern(BITMAP *screen, int x, int y, int w, int h);
+ virtual void drawPattern(
+ SDL_Surface *screen, int x, int y, int w, int h);
protected:
- //SDL_Rect screenRect;
- //SDL_Surface *image;
- BITMAP *image;
+ SDL_Surface *image;
+ //BITMAP *image;
};
/**
@@ -112,7 +111,7 @@ class SubImage : public Image
* Constructor.
*/
//SubImage(SDL_Surface *timage, int x, int y, int width, int height);
- SubImage(Image *parent, BITMAP *image,
+ SubImage(Image *parent, SDL_Surface *image,
int x, int y, int width, int height);
/**
@@ -121,20 +120,33 @@ class SubImage : public Image
~SubImage();
/**
+ * Returns the width of the image.
+ */
+ int getWidth() const;
+
+ /**
+ * Returns the height of the image.
+ */
+ int getHeight() const;
+
+ /**
+ * Creates a new image with the desired clipping rectangle.
+ * @return <code>NULL</code> if creation failed and a valid
+ * object otherwise.
+ */
+ Image* getSubImage(int x, int y, int width, int height);
+
+ /**
* Draws the clipped image onto the screen.
* @return <code>true</code> if drawing was succesful
* <code>false</code> otherwise.
*/
- bool draw(BITMAP *screen, int x, int y);
+ bool draw(SDL_Surface *screen, int x, int y);
private:
Image *parent;
+ SDL_Rect rect;
//BITMAP *image;
- //SDL_Rect clipRect;
- //SDL_Rect screenRect;
- //SDL_Surface *image;
- //SDL_Surface *screen;
- //unsigned int referenceCount;
};
/**
@@ -146,7 +158,7 @@ class ScaledImage : public Image
/**
* Constructor.
*/
- ScaledImage(Image *parent, BITMAP *image, int width, int height);
+ ScaledImage(Image *parent, SDL_Surface *image, int width, int height);
/**
* Destructor.