From bc48c9bc26e992e4214bb6240c71aa96c8141173 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 10 Nov 2018 16:32:45 +0200 Subject: [PATCH] Added command line fullscreen flag to the SDL port, closes #126 --- SDL/main.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/SDL/main.c b/SDL/main.c index 0cf1c79..5f5c76a 100755 --- a/SDL/main.c +++ b/SDL/main.c @@ -488,14 +488,28 @@ static void save_configuration(void) } } +static bool get_arg_flag(const char *flag, int *argc, char **argv) +{ + for (unsigned i = 1; i < *argc; i++) { + if (strcmp(argv[i], flag) == 0) { + (*argc)--; + argv[i] = argv[*argc]; + return true; + } + } + return false; +} + int main(int argc, char **argv) { #define str(x) #x #define xstr(x) str(x) fprintf(stderr, "SameBoy v" xstr(VERSION) "\n"); + + bool fullscreen = get_arg_flag("--fullscreen", &argc, argv); if (argc > 2) { - fprintf(stderr, "Usage: %s [rom]\n", argv[0]); + fprintf(stderr, "Usage: %s [--fullscreen] [rom]\n", argv[0]); exit(1); } @@ -515,6 +529,10 @@ int main(int argc, char **argv) 160 * 2, 144 * 2, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); SDL_SetWindowMinimumSize(window, 160, 144); + if (fullscreen) { + SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP); + } + SDL_GLContext gl_context = SDL_GL_CreateContext(window); GLint major = 0, minor = 0;