commit 9d0c689a
Implemented switchable fullscreen. At the moment only from command line
Changed files
| M | src/saland.cpp before |
| M | src/saland/globals.hpp before |
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<sago::SagoSpriteHolder> spriteHolder;
sago::SagoDataHolder* dataHolder;