diff --git a/Engine/source/windowManager/sdl/sdlSplashScreen.cpp b/Engine/source/windowManager/sdl/sdlSplashScreen.cpp index 974d0baeb..f6ef4ce58 100644 --- a/Engine/source/windowManager/sdl/sdlSplashScreen.cpp +++ b/Engine/source/windowManager/sdl/sdlSplashScreen.cpp @@ -23,12 +23,42 @@ #include "platform/platform.h" #include "console/console.h" +#include "SDL.h" +#include "windowManager/sdl/sdlWindow.h" + +static SDL_Window* gSplashWindow = nullptr; +static SDL_Surface* gSplashImage = nullptr; +static SDL_Texture* gSplashTexture = nullptr; +static SDL_Renderer* gSplashRenderer = nullptr; + bool Platform::displaySplashWindow( String path ) { if(path.isEmpty()) return false; + gSplashImage = SDL_LoadBMP(path); + + //now the pop-up window + gSplashWindow = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, + gSplashImage->w, gSplashImage->h, SDL_WINDOW_BORDERLESS | SDL_WINDOW_SHOWN); + + gSplashRenderer = SDL_CreateRenderer(gSplashWindow, -1, SDL_RENDERER_ACCELERATED); + + gSplashTexture = SDL_CreateTextureFromSurface(gSplashRenderer, gSplashImage); + + SDL_RenderCopy(gSplashRenderer, gSplashTexture, NULL, NULL); + + SDL_RenderPresent(gSplashRenderer); + return true; } +bool Platform::closeSplashWindow() +{ + SDL_DestroyTexture(gSplashTexture); + SDL_FreeSurface(gSplashImage); + SDL_DestroyRenderer(gSplashRenderer); + SDL_DestroyWindow(gSplashWindow); + return true; +} \ No newline at end of file diff --git a/Engine/source/windowManager/sdl/sdlWindowMgr.cpp b/Engine/source/windowManager/sdl/sdlWindowMgr.cpp index 61a7e7da6..b1d3d04d1 100644 --- a/Engine/source/windowManager/sdl/sdlWindowMgr.cpp +++ b/Engine/source/windowManager/sdl/sdlWindowMgr.cpp @@ -153,7 +153,7 @@ PlatformWindow *PlatformWindowManagerSDL::createWindow(GFXDevice *device, const { // Do the allocation. PlatformWindowSDL *window = new PlatformWindowSDL(); - U32 windowFlags = /*SDL_WINDOW_SHOWN |*/ SDL_WINDOW_RESIZABLE; + U32 windowFlags = /*SDL_WINDOW_SHOWN |*/ SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN; if(GFX->getAdapterType() == OpenGL) windowFlags |= SDL_WINDOW_OPENGL; @@ -343,11 +343,6 @@ void PlatformWindowManagerSDL::raiseCurtain() // TODO SDL } -bool Platform::closeSplashWindow() -{ - return true; -} - void Platform::openFolder(const char* path ) { AssertFatal(0, "Not Implemented");