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 /src/resources/image.cpp | |
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...
Diffstat (limited to 'src/resources/image.cpp')
-rw-r--r-- | src/resources/image.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
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; |