From bb0281c87995e11dc1cac95009a5253356d94d1a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 21 Aug 2013 23:58:06 +0300 Subject: some SDL2 complilation fixes. --- src/compoundsprite.cpp | 6 ++++++ src/graphics.cpp | 36 ++++++++++++++++++++---------------- src/graphics.h | 1 + src/graphicsmanager.cpp | 5 +++++ src/resources/atlasmanager.cpp | 6 +++++- src/sdlshared.h | 10 ++++++++-- 6 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/compoundsprite.cpp b/src/compoundsprite.cpp index bb9b88159..b65d238d4 100644 --- a/src/compoundsprite.cpp +++ b/src/compoundsprite.cpp @@ -313,6 +313,11 @@ unsigned int CompoundSprite::getFrameCount(unsigned int layer) void CompoundSprite::redraw() const { +#ifdef USE_SDL2 + // +++ need impliment after + return; +#else + #if SDL_BYTEORDER == SDL_BIG_ENDIAN const int rmask = 0xff000000; const int gmask = 0x00ff0000; @@ -386,6 +391,7 @@ void CompoundSprite::redraw() const { mAlphaImage = nullptr; } +#endif } void CompoundSprite::setAlpha(float alpha) diff --git a/src/graphics.cpp b/src/graphics.cpp index 387566013..28d5e09fb 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -106,12 +106,14 @@ void Graphics::setMainFlags(const int w, const int h, const int bpp, int Graphics::getOpenGLFlags() const { #ifdef USE_OPENGL + #ifdef USE_SDL2 - int displayFlags = SDL_WINDOW_OPENGL; + int displayFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_OPENGL; if (mFullscreen) displayFlags |= SDL_WINDOW_FULLSCREEN; #else int displayFlags = SDL_ANYFORMAT | SDL_OPENGL; +#endif // USE_SDL2 if (mFullscreen) { @@ -131,10 +133,12 @@ int Graphics::getOpenGLFlags() const displayFlags |= SDL_NOFRAME; return displayFlags; -#endif -#else + +#else // USE_OPENGL + return 0; -#endif +#endif // USE_OPENGL + } bool Graphics::setOpenGLMode() @@ -203,26 +207,23 @@ bool Graphics::setOpenGLMode() int Graphics::getSoftwareFlags() const { #ifdef USE_SDL2 - int displayFlags = 0; - - if (mFullscreen) - displayFlags |= SDL_FULLSCREEN; + int displayFlags = SDL_WINDOW_SHOWN; #else int displayFlags = SDL_ANYFORMAT; - if (mFullscreen) - displayFlags |= SDL_FULLSCREEN; - else if (mEnableResize) - displayFlags |= SDL_RESIZABLE; - if (mHWAccel) displayFlags |= SDL_HWSURFACE | SDL_DOUBLEBUF; else displayFlags |= SDL_SWSURFACE; +#endif + + if (mFullscreen) + displayFlags |= SDL_FULLSCREEN; + else if (mEnableResize) + displayFlags |= SDL_RESIZABLE; if (mNoFrame) displayFlags |= SDL_NOFRAME; -#endif return displayFlags; } @@ -261,16 +262,19 @@ int Graphics::getMemoryUsage() const bool Graphics::videoInfo() { - char videoDriverName[65]; logger->log("SDL video info"); +#ifdef USE_SDL2 + logger->log("Using video driver: %s", SDL_GetCurrentVideoDriver()); +#else + char videoDriverName[65]; if (SDL_VideoDriverName(videoDriverName, 64)) logger->log("Using video driver: %s", videoDriverName); else logger->log1("Using video driver: unknown"); - mDoubleBuffer = ((mWindow->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF); logger->log("Double buffer mode: %s", mDoubleBuffer ? "yes" : "no"); +#endif imageHelper->dumpSurfaceFormat(mWindow); diff --git a/src/graphics.h b/src/graphics.h index c269dc540..cdd5b2e71 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -38,6 +38,7 @@ class ImageVertexes; class MapLayer; struct SDL_Surface; +struct SDL_Window; static const int defaultScreenWidth = 800; static const int defaultScreenHeight = 600; diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 0d66dc3a7..15eb25af3 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -382,7 +382,12 @@ bool GraphicsManager::getAllVideoModes(StringVect &modeList) SDL_Window *GraphicsManager::createWindow(const int w, const int h, const int bpp, const int flags) { +#ifdef USE_SDL2 + return SDL_CreateWindow("ManaPlus", SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, w, h, flags); +#else return SDL_SetVideoMode(w, h, bpp, flags); +#endif } #ifdef USE_OPENGL diff --git a/src/resources/atlasmanager.cpp b/src/resources/atlasmanager.cpp index dd1f7aef3..f6cd23de4 100644 --- a/src/resources/atlasmanager.cpp +++ b/src/resources/atlasmanager.cpp @@ -200,6 +200,10 @@ 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; @@ -223,7 +227,6 @@ SDL_Surface *AtlasManager::createSDLAtlas(TextureAtlas *const atlas) // temp SDL surface for atlas SDL_Surface *const surface = SDL_CreateRGBSurface(SDL_SWSURFACE, atlas->width, atlas->height, 32, rmask, gmask, bmask, amask); - if (!surface) return nullptr; @@ -251,6 +254,7 @@ SDL_Surface *AtlasManager::createSDLAtlas(TextureAtlas *const atlas) delete graphics; atlas->surface = surface; return surface; +#endif } void AtlasManager::convertAtlas(TextureAtlas *const atlas) diff --git a/src/sdlshared.h b/src/sdlshared.h index 70798d441..840283688 100644 --- a/src/sdlshared.h +++ b/src/sdlshared.h @@ -23,11 +23,17 @@ #ifdef USE_SDL2 -#define SDLKey SDL_Keycode #define SDL_GetKeyState SDL_GetKeyboardState -#define SDL_HWSURFACE 0 +#define SDLKey SDL_Keycode #define SDL_keysym SDL_Keysym +#define SDL_ANYFORMAT 0 +#define SDL_HWSURFACE 0 +#define SDL_NOFRAME SDL_WINDOW_BORDERLESS +#define SDL_RESIZABLE SDL_WINDOW_RESIZABLE +#define SDL_FULLSCREEN SDL_WINDOW_FULLSCREEN +#define SDL_OPENGL SDL_WINDOW_OPENGL + #define KMOD_META KMOD_GUI #define SDLK_RMETA SDLK_RGUI #define SDLK_LMETA SDLK_LGUI -- cgit v1.2.3-60-g2f50