diff --git a/src/saland.cpp b/src/saland.cpp index d68e87c..57aa8b0 100644 --- a/src/saland.cpp +++ b/src/saland.cpp @@ -171,6 +171,19 @@ void startWorld() { RunGameState(g); } +void ResetFullscreen(SDL_Window* sdlWindow, sago::SagoDataHolder& dataHolder) { + Mix_HaltMusic(); //We need to reload all data in case the screen type changes. Music must be stopped before unload. + if (false) { + SDL_SetWindowFullscreen(sdlWindow, SDL_WINDOW_FULLSCREEN_DESKTOP); + } + else { + SDL_SetWindowFullscreen(sdlWindow, 0); + } + dataHolder.invalidateAll(globalData.screen); + globalData.spriteHolder.reset(new sago::SagoSpriteHolder( dataHolder ) ); + SDL_ShowCursor(SDL_ENABLE); +} + void runGame() { int posX = 100, posY = 100, width = 1024, height = 768; SDL_Init(SDL_INIT_VIDEO); @@ -180,9 +193,11 @@ void runGame() { SDL_Window* win = SDL_CreateWindow("Saland Adventures", posX, posY, width, height, 0); globalData.screen = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED); + SDL_RenderSetLogicalSize(globalData.screen, 1024, 768); sago::SagoDataHolder holder(globalData.screen); globalData.spriteHolder.reset(new sago::SagoSpriteHolder(holder)); globalData.dataHolder = &holder; + ResetFullscreen(win, *globalData.dataHolder); TitleScreen ts; RunGameState(ts);