summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-08-24 18:51:52 +0300
committerAndrei Karas <akaras@inbox.ru>2013-08-24 21:08:17 +0300
commit43fd8a8d53d4bd811a8e4d468a78f201148e5896 (patch)
treed9301ad729927db224c35636890782e4748b0599
parent889ea19ddd5b4240375793d5030a04ed4642ec66 (diff)
downloadmanaverse-43fd8a8d53d4bd811a8e4d468a78f201148e5896.tar.gz
manaverse-43fd8a8d53d4bd811a8e4d468a78f201148e5896.tar.bz2
manaverse-43fd8a8d53d4bd811a8e4d468a78f201148e5896.tar.xz
manaverse-43fd8a8d53d4bd811a8e4d468a78f201148e5896.zip
fix atlases cretion in SDL2.
-rw-r--r--src/resources/atlasmanager.cpp15
-rw-r--r--src/resources/sdl2imagehelper.cpp3
-rw-r--r--src/surfacegraphics.h2
3 files changed, 10 insertions, 10 deletions
diff --git a/src/resources/atlasmanager.cpp b/src/resources/atlasmanager.cpp
index 853f79743..4b3656ee6 100644
--- a/src/resources/atlasmanager.cpp
+++ b/src/resources/atlasmanager.cpp
@@ -200,10 +200,6 @@ void AtlasManager::simpleSort(const std::string &name,
SDL_Surface *AtlasManager::createSDLAtlas(TextureAtlas *const atlas)
{
-#ifdef USE_SDL2
- // +++ should be enabled after
- return nullptr;
-#else
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
const int rmask = 0xff000000;
const int gmask = 0x00ff0000;
@@ -244,19 +240,22 @@ SDL_Surface *AtlasManager::createSDLAtlas(TextureAtlas *const atlas)
if (image)
{
+ if (image->mSDLSurface)
+ {
#ifdef USE_SDL2
- SDL_SetSurfaceAlphaMod(image->mSDLSurface, 255);
+ SDL_SetSurfaceAlphaMod(image->mSDLSurface, SDL_ALPHA_OPAQUE);
+ SDL_SetSurfaceBlendMode (image->mSDLSurface, SDL_BLENDMODE_NONE);
#else
- SDL_SetAlpha(image->mSDLSurface, 0, SDL_ALPHA_OPAQUE);
+ SDL_SetAlpha(image->mSDLSurface, 0, SDL_ALPHA_OPAQUE);
#endif
- graphics->drawImage(image, item->x, item->y);
+ graphics->drawImage(image, item->x, item->y);
+ }
}
}
delete graphics;
atlas->surface = surface;
return surface;
-#endif
}
void AtlasManager::convertAtlas(TextureAtlas *const atlas)
diff --git a/src/resources/sdl2imagehelper.cpp b/src/resources/sdl2imagehelper.cpp
index acc72ce00..c5a75d236 100644
--- a/src/resources/sdl2imagehelper.cpp
+++ b/src/resources/sdl2imagehelper.cpp
@@ -137,7 +137,8 @@ Image *SDLImageHelper::_SDLload(SDL_Surface *tmpImage) const
if (!tmpImage)
return nullptr;
- return new Image(tmpImage, false, nullptr);
+ SDL_Surface *image = convertTo32Bit(tmpImage);
+ return new Image(image, false, nullptr);
}
int SDLImageHelper::useOpenGL() const
diff --git a/src/surfacegraphics.h b/src/surfacegraphics.h
index 5cce65ddd..9ba2f183f 100644
--- a/src/surfacegraphics.h
+++ b/src/surfacegraphics.h
@@ -52,7 +52,7 @@ class SurfaceGraphics : public Graphics
virtual ~SurfaceGraphics();
- void setWindow(SDL_Surface *const target)
+ void setTarget(SDL_Surface *const target)
{ mTarget = target; }
SDL_Surface *getTarget() const