diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-02-18 11:13:53 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-02-18 11:13:53 +0000 |
commit | 1cc8f5dc5413651d12df2ada51538d46734b0f0f (patch) | |
tree | 00ec79c11da398a1d53f8cee7e8faaddd2ff11fa | |
parent | 700730abd0f2c87f4170d4565587ff986bd21018 (diff) | |
download | mana-1cc8f5dc5413651d12df2ada51538d46734b0f0f.tar.gz mana-1cc8f5dc5413651d12df2ada51538d46734b0f0f.tar.bz2 mana-1cc8f5dc5413651d12df2ada51538d46734b0f0f.tar.xz mana-1cc8f5dc5413651d12df2ada51538d46734b0f0f.zip |
So I added this alpha attribute to images...
-rw-r--r-- | src/.cvsignore | 1 | ||||
-rw-r--r-- | src/game.cpp | 2 | ||||
-rw-r--r-- | src/resources/image.cpp | 25 | ||||
-rw-r--r-- | src/resources/image.h | 11 |
4 files changed, 38 insertions, 1 deletions
diff --git a/src/.cvsignore b/src/.cvsignore index 9a639215..8bd3ad01 100644 --- a/src/.cvsignore +++ b/src/.cvsignore @@ -1,3 +1,4 @@ .deps Makefile.in Makefile +tmw diff --git a/src/game.cpp b/src/game.cpp index 2d9c4cc7..4db888f8 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -385,7 +385,7 @@ void do_input() int get_packet_length(short id) { int len = get_length(id); - if (len == -1)len = RFIFOW(2); + if (len == -1) len = RFIFOW(2); return len; } diff --git a/src/resources/image.cpp b/src/resources/image.cpp index eca4b42f..02eb2393 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -40,6 +40,8 @@ Image::Image(GLuint image, int width, int height, int texWidth, int texHeight): texHeight(texHeight) #endif { + // Default to opaque + alpha = 1.0f; } Image::~Image() @@ -250,6 +252,9 @@ bool Image::draw(SDL_Surface *screen, int srcX, int srcY, int dstX, int dstY, // Check that preconditions for blitting are met. if (screen == NULL || image == NULL) return false; + // Set the alpha value this image is drawn at + SDL_SetAlpha(image, SDL_SRCALPHA, 255 * alpha); + SDL_Rect dstRect; SDL_Rect srcRect; dstRect.x = dstX; dstRect.y = dstY; @@ -303,6 +308,9 @@ bool Image::draw(SDL_Surface *screen, int x, int y) // Check that preconditions for blitting are met. if (screen == NULL || image == NULL) return false; + // Set the alpha value this image is drawn at + SDL_SetAlpha(image, SDL_SRCALPHA, 255 * alpha); + SDL_Rect dstRect; dstRect.x = x; dstRect.y = y; @@ -367,6 +375,17 @@ void Image::drawPattern(SDL_Surface *screen, int x, int y, int w, int h) } } +void Image::setAlpha(float alpha) +{ + this->alpha = alpha; +} + +float Image::getAlpha() +{ + return alpha; +} + + //============================================================================ #ifndef USE_OPENGL @@ -420,6 +439,9 @@ bool SubImage::draw(SDL_Surface *screen, int srcX, int srcY, // Check that preconditions for blitting are met. if (screen == NULL || image == NULL) return false; + // Set the alpha value this image is drawn at + SDL_SetAlpha(image, SDL_SRCALPHA, 255 * alpha); + SDL_Rect dstRect; SDL_Rect srcRect; dstRect.x = dstX; dstRect.y = dstY; @@ -473,6 +495,9 @@ bool SubImage::draw(SDL_Surface *screen, int x, int y) // Check that drawing preconditions are satisfied. if (screen == NULL || image == NULL) return false; + // Set the alpha value this image is drawn at + SDL_SetAlpha(image, SDL_SRCALPHA, 255 * alpha); + SDL_Rect dstRect; dstRect.x = x; dstRect.y = y; diff --git a/src/resources/image.h b/src/resources/image.h index 09a0fc7e..a92e6cc3 100644 --- a/src/resources/image.h +++ b/src/resources/image.h @@ -117,6 +117,16 @@ class Image : public Resource virtual void drawPattern( SDL_Surface *screen, int x, int y, int w, int h); + /** + * Sets the alpha value of this image. + */ + void setAlpha(float alpha); + + /** + * Returns the alpha value of this image. + */ + float getAlpha(); + protected: #ifdef USE_OPENGL GLuint image; @@ -125,6 +135,7 @@ class Image : public Resource #else SDL_Surface *image; #endif + float alpha; }; /** |