[iortcw] 30/95: All: Optimized Alt-Enter patch by SmileTheory

Simon McVittie smcv at debian.org
Fri Sep 8 10:41:55 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to tag 1.51
in repository iortcw.

commit b3b521e10ce770742b32a342e3a7f803b2af7a97
Author: MAN-AT-ARMS <M4N4T4RMS at gmail.com>
Date:   Tue Feb 7 22:54:11 2017 -0500

    All: Optimized Alt-Enter patch by SmileTheory
---
 MP/code/sdl/sdl_glimp.c | 26 ++++++++++++++++++--------
 SP/code/sdl/sdl_glimp.c | 26 ++++++++++++++++++--------
 2 files changed, 36 insertions(+), 16 deletions(-)

diff --git a/MP/code/sdl/sdl_glimp.c b/MP/code/sdl/sdl_glimp.c
index 45627ad..fa405d1 100644
--- a/MP/code/sdl/sdl_glimp.c
+++ b/MP/code/sdl/sdl_glimp.c
@@ -908,7 +908,7 @@ void GLimp_EndFrame( void )
 
 	if( r_fullscreen->modified )
 	{
-		int         fullscreen;
+		qboolean    fullscreen;
 		qboolean    needToToggle;
 
 		// Find out the current state
@@ -926,16 +926,26 @@ void GLimp_EndFrame( void )
 
 		if( needToToggle )
 		{
-			// Need the vid_restart here since r_fullscreen is only latched
-			if( fullscreen ) {
-				Com_Printf( "Switching to windowed rendering\n" );
-				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
-			} else {
+			// Always issue a vid_restart when going to windowed instead of calling SDL_SetWindowFullscreen()
+			// Otherwise sdl_input.c::IN_ProcessEvents() will catch a SDL_WINDOWEVENT_RESIZED event
+			// That will alter user resolution cvars and issue a vid_restart anyway
+			qboolean needVidRestart = qtrue;
+ 
+			if (!fullscreen)
+			{
+				// Issue a vid_restart if SDL_SetWindowFullscreen() doesn't work
+				needVidRestart = SDL_SetWindowFullscreen(SDL_window, SDL_WINDOW_FULLSCREEN) < 0;
 				Com_Printf( "Switching to fullscreen rendering\n" );
-				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
+			}
+			else
+			{
+				Com_Printf( "Switching to windowed rendering\n" );
 			}
 
-			ri.IN_Restart( );
+			if (needVidRestart)
+ 				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
+ 
+ 			ri.IN_Restart( );
 		}
 
 		r_fullscreen->modified = qfalse;
diff --git a/SP/code/sdl/sdl_glimp.c b/SP/code/sdl/sdl_glimp.c
index 45627ad..fa405d1 100644
--- a/SP/code/sdl/sdl_glimp.c
+++ b/SP/code/sdl/sdl_glimp.c
@@ -908,7 +908,7 @@ void GLimp_EndFrame( void )
 
 	if( r_fullscreen->modified )
 	{
-		int         fullscreen;
+		qboolean    fullscreen;
 		qboolean    needToToggle;
 
 		// Find out the current state
@@ -926,16 +926,26 @@ void GLimp_EndFrame( void )
 
 		if( needToToggle )
 		{
-			// Need the vid_restart here since r_fullscreen is only latched
-			if( fullscreen ) {
-				Com_Printf( "Switching to windowed rendering\n" );
-				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
-			} else {
+			// Always issue a vid_restart when going to windowed instead of calling SDL_SetWindowFullscreen()
+			// Otherwise sdl_input.c::IN_ProcessEvents() will catch a SDL_WINDOWEVENT_RESIZED event
+			// That will alter user resolution cvars and issue a vid_restart anyway
+			qboolean needVidRestart = qtrue;
+ 
+			if (!fullscreen)
+			{
+				// Issue a vid_restart if SDL_SetWindowFullscreen() doesn't work
+				needVidRestart = SDL_SetWindowFullscreen(SDL_window, SDL_WINDOW_FULLSCREEN) < 0;
 				Com_Printf( "Switching to fullscreen rendering\n" );
-				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
+			}
+			else
+			{
+				Com_Printf( "Switching to windowed rendering\n" );
 			}
 
-			ri.IN_Restart( );
+			if (needVidRestart)
+ 				ri.Cmd_ExecuteText(EXEC_APPEND, "vid_restart\n");
+ 
+ 			ri.IN_Restart( );
 		}
 
 		r_fullscreen->modified = qfalse;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git



More information about the Pkg-games-commits mailing list