summaryrefslogtreecommitdiff
path: root/src/resources/sdl2imagehelper.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-07-01 21:57:46 +0300
committerAndrei Karas <akaras@inbox.ru>2014-07-01 21:57:46 +0300
commit62e2ccbb158f146e2c3ceab14ff5581d3f3975ef (patch)
tree736e615b6ff94e09144df7df3aa06f9f231743ff /src/resources/sdl2imagehelper.cpp
parentd3b57bd96a07a674432fd28cefd2f20ae5404b8b (diff)
downloadplus-62e2ccbb158f146e2c3ceab14ff5581d3f3975ef.tar.gz
plus-62e2ccbb158f146e2c3ceab14ff5581d3f3975ef.tar.bz2
plus-62e2ccbb158f146e2c3ceab14ff5581d3f3975ef.tar.xz
plus-62e2ccbb158f146e2c3ceab14ff5581d3f3975ef.zip
Add to image helper function to copy surface into part of image.
Diffstat (limited to 'src/resources/sdl2imagehelper.cpp')
-rw-r--r--src/resources/sdl2imagehelper.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/resources/sdl2imagehelper.cpp b/src/resources/sdl2imagehelper.cpp
index c671a60c1..12e975ae6 100644
--- a/src/resources/sdl2imagehelper.cpp
+++ b/src/resources/sdl2imagehelper.cpp
@@ -94,4 +94,22 @@ int SDLImageHelper::combineSurface(SDL_Surface *restrict const src,
return 1;
}
+void SDLImageHelper::copySurfaceToImage(Image *const image,
+ const int x, const int y,
+ SDL_Surface *const surface) const
+{
+ if (!image || !surface)
+ return;
+
+ SDL_SetSurfaceAlphaMod(surface, SDL_ALPHA_OPAQUE);
+ SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE);
+
+ SDL_Rect rect =
+ {
+ x, y,
+ surface->w, surface->h
+ };
+
+ SDL_BlitSurface(surface, nullptr, image->mSDLSurface, &rect);
+}
#endif // USE_SDL2