From: hgn Date: Thu, 4 Jan 2024 15:43:36 +0000 (+0000) Subject: fullscreen problems X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=commitdiff_plain;h=c504a4a03c6b31c0177e82f02e9db843779ede88 fullscreen problems --- diff --git a/vg.h b/vg.h index 2f6ee08..0dfc281 100644 --- a/vg.h +++ b/vg.h @@ -769,38 +769,25 @@ static void _vg_init_window( const char *window_name ) SDL_SetHint( "SDL_VIDEO_X11_XVIDMODE", "0" ); #endif - u32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_GRABBED; + u32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_INPUT_GRABBED | + SDL_WINDOW_RESIZABLE; #ifdef VG_DEVWINDOW flags |= SDL_WINDOW_BORDERLESS; vg.screen_mode = 2; - vg.window_x = 1280; - vg.window_y = 720; #else - - if( vg.screen_mode == 2 ) - flags |= SDL_WINDOW_RESIZABLE; - else if( vg.screen_mode == 1 ) + if( vg.screen_mode == 1 ) flags |= SDL_WINDOW_FULLSCREEN; - else + else if( vg.screen_mode == 0 ) flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; - #endif vg_info( "CreateWindow( %d %d %u )\n", vg.window_x, vg.window_y, flags ); - if((vg.window = SDL_CreateWindow( window_name, - 0, 0, vg.window_x, vg.window_y, flags ))){ - -#ifdef VG_DEVWINDOW - SDL_SetWindowPosition( vg.window, video_mode.w-vg.window_x, 0 ); -#endif - - if( SDL_SetWindowDisplayMode( vg.window, &video_mode ) ){ - vg_error( "SDL_SetWindowDisplayMode failed: %s", SDL_GetError() ); - SDL_Quit(); - exit(0); - } + if((vg.window = SDL_CreateWindow( window_name, 0, 0, + vg.window_x, vg.window_y, flags ))){ + if( vg.screen_mode == 2 ) + SDL_SetWindowPosition( vg.window, video_mode.w-vg.window_x, 0 ); } else{ vg_error( "SDL_CreateWindow failed: %s", SDL_GetError() ); diff --git a/vg_settings_menu.h b/vg_settings_menu.h index f84fcf1..7198810 100644 --- a/vg_settings_menu.h +++ b/vg_settings_menu.h @@ -49,8 +49,6 @@ struct { } vsync, quality, screenmode, audio_devices, dsp; i32 temp_audio_choice; - - int windowed_before[4]; } static vg_settings = { .fps_limit = { .label = "Fps Limit", @@ -198,12 +196,6 @@ static void vg_settings_video_apply(void){ vg.screen_mode = vg_settings.screenmode.new_value; if( (vg.screen_mode == 0) || (vg.screen_mode == 1) ){ - SDL_GetWindowPosition( vg.window, - &vg_settings.windowed_before[0], - &vg_settings.windowed_before[1] ); - vg_settings.windowed_before[2] = vg.window_x; - vg_settings.windowed_before[3] = vg.window_y; - SDL_DisplayMode video_mode; if( SDL_GetDesktopDisplayMode( 0, &video_mode ) ){ vg_error("SDL_GetDesktopDisplayMode failed: %s\n", SDL_GetError()); @@ -213,7 +205,6 @@ static void vg_settings_video_apply(void){ vg.window_x = video_mode.w; vg.window_y = video_mode.h; } - SDL_SetWindowResizable( vg.window, SDL_FALSE ); SDL_SetWindowSize( vg.window, vg.window_x, vg.window_y ); } @@ -223,13 +214,10 @@ static void vg_settings_video_apply(void){ SDL_SetWindowFullscreen( vg.window, SDL_WINDOW_FULLSCREEN ); if( vg.screen_mode == 2 ){ SDL_SetWindowFullscreen( vg.window, 0 ); - SDL_SetWindowSize( vg.window, - vg_settings.windowed_before[2], - vg_settings.windowed_before[3] ); - SDL_SetWindowPosition( vg.window, - vg_settings.windowed_before[0], - vg_settings.windowed_before[1] ); - SDL_SetWindowResizable( vg.window, SDL_TRUE ); + SDL_SetWindowSize( vg.window, 1280, 720 ); + SDL_SetWindowPosition( vg.window, 16, 16 ); + SDL_SetWindowMinimumSize( vg.window, 1280, 720 ); + SDL_SetWindowMaximumSize( vg.window, 4096, 4096 ); } }