diff --git a/src/saland.cpp b/src/saland.cpp index d715163..3efdd46 100644 --- a/src/saland.cpp +++ b/src/saland.cpp @@ -173,7 +173,7 @@ void startWorld() { 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 (true) { + if (globalData.fullscreen) { SDL_SetWindowFullscreen(sdlWindow, SDL_WINDOW_FULLSCREEN_DESKTOP); } else { @@ -182,10 +182,7 @@ void ResetFullscreen(SDL_Window* sdlWindow, sago::SagoDataHolder& dataHolder) { dataHolder.invalidateAll(globalData.screen); globalData.spriteHolder.reset(new sago::SagoSpriteHolder( dataHolder ) ); SDL_ShowCursor(SDL_ENABLE); - SDL_DisplayMode DM; - SDL_GetCurrentDisplayMode(0, &DM); - globalData.xsize = DM.w; - globalData.ysize = DM.h; + SDL_GetRendererOutputSize(globalData.screen, &globalData.xsize, &globalData.ysize); } void runGame() { @@ -195,6 +192,8 @@ void runGame() { TTF_Init(); Mix_Init(MIX_INIT_OGG); + globalData.fullscreen = Config::getInstance()->getInt("fullscreen"); + 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); @@ -232,6 +231,8 @@ int main(int argc, char* argv[]) { desc.add_options() ("version", "Print version information and quit") ("help,h", "Print basic usage information to stdout and quit") + ("fullscreen", "Run in fullscreen") + ("no-fullscreen", "Run in window") ; boost::program_options::variables_map vm; boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); @@ -244,6 +245,12 @@ int main(int argc, char* argv[]) { std::cout << "saland " << VERSION_NUMBER << "\n"; return 0; } + if (vm.count("fullscreen")) { + Config::getInstance()->setInt("fullscreen", 1); + } + if (vm.count("no-fullscreen")) { + Config::getInstance()->setInt("fullscreen", 0); + } runGame(); return 0; } diff --git a/src/saland/globals.hpp b/src/saland/globals.hpp index fe13f4c..75613a3 100644 --- a/src/saland/globals.hpp +++ b/src/saland/globals.hpp @@ -29,6 +29,7 @@ https://github.com/sago007/saland struct GlobalData { bool isShuttingDown = false; + bool fullscreen = false; SDL_Renderer* screen = nullptr; std::unique_ptr spriteHolder; sago::SagoDataHolder* dataHolder;