diff options
Diffstat (limited to 'src/cl_ref.c')
-rw-r--r-- | src/cl_ref.c | 194 |
1 files changed, 102 insertions, 92 deletions
diff --git a/src/cl_ref.c b/src/cl_ref.c index 38464b3..92688c7 100644 --- a/src/cl_ref.c +++ b/src/cl_ref.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -52,7 +52,8 @@ HELPER FUNCTIONS // 640x480@75 // 640x480@75:32 // 640x480:32@75 -qboolean VID_GetFullscreen( vrect_t *rc, int *freq_p, int *depth_p ) { +qboolean VID_GetFullscreen(vrect_t *rc, int *freq_p, int *depth_p) +{ unsigned long w, h, freq, depth; char *s; int mode; @@ -63,62 +64,62 @@ qboolean VID_GetFullscreen( vrect_t *rc, int *freq_p, int *depth_p ) { rc->width = 640; rc->height = 480; - if( freq_p ) + if (freq_p) *freq_p = 0; - if( depth_p ) + if (depth_p) *depth_p = 0; - if( !vid_modelist || !vid_fullscreen ) + if (!vid_modelist || !vid_fullscreen) return qfalse; s = vid_modelist->string; - if( !*s ) + if (!*s) return qfalse; mode = 1; - while( 1 ) { - w = strtoul( s, &s, 10 ); - if( *s != 'x' && *s != 'X' ) { - Com_DPrintf( "Mode %d is malformed\n", mode ); + while (1) { + w = strtoul(s, &s, 10); + if (*s != 'x' && *s != 'X') { + Com_DPrintf("Mode %d is malformed\n", mode); return qfalse; } - h = strtoul( s + 1, &s, 10 ); + h = strtoul(s + 1, &s, 10); freq = depth = 0; - if( *s == '@' ) { - freq = strtoul( s + 1, &s, 10 ); - if( *s == ':' ) { - depth = strtoul( s + 1, &s, 10 ); + if (*s == '@') { + freq = strtoul(s + 1, &s, 10); + if (*s == ':') { + depth = strtoul(s + 1, &s, 10); } - } else if( *s == ':' ) { - depth = strtoul( s + 1, &s, 10 ); - if( *s == '@' ) { - freq = strtoul( s + 1, &s, 10 ); + } else if (*s == ':') { + depth = strtoul(s + 1, &s, 10); + if (*s == '@') { + freq = strtoul(s + 1, &s, 10); } } - if( mode == vid_fullscreen->integer ) { + if (mode == vid_fullscreen->integer) { break; } - while( Q_isspace( *s ) ) + while (Q_isspace(*s)) s++; - if( *s == 0 ) { - Com_DPrintf( "Mode %d not found\n", vid_fullscreen->integer ); + if (*s == 0) { + Com_DPrintf("Mode %d not found\n", vid_fullscreen->integer); return qfalse; } mode++; } // sanity check - if( w < 64 || w > 8192 || h < 64 || h > 8192 || freq > 1000 || depth > 32 ) { - Com_DPrintf( "Mode %lux%lu@%lu:%lu doesn't look sane\n", w, h, freq, depth ); + if (w < 64 || w > 8192 || h < 64 || h > 8192 || freq > 1000 || depth > 32) { + Com_DPrintf("Mode %lux%lu@%lu:%lu doesn't look sane\n", w, h, freq, depth); return qfalse; } rc->width = w; rc->height = h; - if( freq_p ) + if (freq_p) *freq_p = freq; - if( depth_p ) + if (depth_p) *depth_p = depth; return qtrue; @@ -128,7 +129,8 @@ qboolean VID_GetFullscreen( vrect_t *rc, int *freq_p, int *depth_p ) { // 640x480+0 // 640x480+0+0 // 640x480-100-100 -qboolean VID_GetGeometry( vrect_t *rc ) { +qboolean VID_GetGeometry(vrect_t *rc) +{ unsigned long w, h; long x, y; char *s; @@ -139,30 +141,30 @@ qboolean VID_GetGeometry( vrect_t *rc ) { rc->width = 640; rc->height = 480; - if( !vid_geometry ) + if (!vid_geometry) return qfalse; s = vid_geometry->string; - if( !*s ) + if (!*s) return qfalse; - w = strtoul( s, &s, 10 ); - if( *s != 'x' && *s != 'X' ) { - Com_DPrintf( "Geometry string is malformed\n" ); + w = strtoul(s, &s, 10); + if (*s != 'x' && *s != 'X') { + Com_DPrintf("Geometry string is malformed\n"); return qfalse; } - h = strtoul( s + 1, &s, 10 ); + h = strtoul(s + 1, &s, 10); x = y = 0; - if( *s == '+' || *s == '-' ) { - x = strtol( s, &s, 10 ); - if( *s == '+' || *s == '-' ) { - y = strtol( s, &s, 10 ); + if (*s == '+' || *s == '-') { + x = strtol(s, &s, 10); + if (*s == '+' || *s == '-') { + y = strtol(s, &s, 10); } } // sanity check - if( w < 64 || w > 8192 || h < 64 || h > 8192 ) { - Com_DPrintf( "Geometry %lux%lu doesn't look sane\n", w, h ); + if (w < 64 || w > 8192 || h < 64 || h > 8192) { + Com_DPrintf("Geometry %lux%lu doesn't look sane\n", w, h); return qfalse; } @@ -174,28 +176,30 @@ qboolean VID_GetGeometry( vrect_t *rc ) { return qtrue; } -void VID_SetGeometry( vrect_t *rc ) { +void VID_SetGeometry(vrect_t *rc) +{ char buffer[MAX_QPATH]; - if( !vid_geometry ) + if (!vid_geometry) return; - Q_snprintf( buffer, sizeof( buffer ), "%dx%d%+d%+d", - rc->width, rc->height, rc->x, rc->y ); - Cvar_SetByVar( vid_geometry, buffer, FROM_CODE ); + Q_snprintf(buffer, sizeof(buffer), "%dx%d%+d%+d", + rc->width, rc->height, rc->x, rc->y); + Cvar_SetByVar(vid_geometry, buffer, FROM_CODE); } -void VID_ToggleFullscreen( void ) { - if( !vid_fullscreen || !_vid_fullscreen ) +void VID_ToggleFullscreen(void) +{ + if (!vid_fullscreen || !_vid_fullscreen) return; - if( !vid_fullscreen->integer ) { - if( !_vid_fullscreen->integer ) { - Cvar_Set( "_vid_fullscreen", "1" ); + if (!vid_fullscreen->integer) { + if (!_vid_fullscreen->integer) { + Cvar_Set("_vid_fullscreen", "1"); } - Cbuf_AddText( &cmd_buffer, "set vid_fullscreen $_vid_fullscreen\n" ); + Cbuf_AddText(&cmd_buffer, "set vid_fullscreen $_vid_fullscreen\n"); } else { - Cbuf_AddText( &cmd_buffer, "set vid_fullscreen 0\n" ); + Cbuf_AddText(&cmd_buffer, "set vid_fullscreen 0\n"); } } @@ -212,26 +216,27 @@ LOADING / SHUTDOWN CL_RunResfresh ============ */ -void CL_RunRefresh( void ) { - if( !cls.ref_initialized ) { +void CL_RunRefresh(void) +{ + if (!cls.ref_initialized) { return; } - + VID_PumpEvents(); - if( mode_changed ) { - if( mode_changed & MODE_FULLSCREEN ) { + if (mode_changed) { + if (mode_changed & MODE_FULLSCREEN) { VID_SetMode(); - if( vid_fullscreen->integer ) { - Cvar_Set( "_vid_fullscreen", vid_fullscreen->string ); + if (vid_fullscreen->integer) { + Cvar_Set("_vid_fullscreen", vid_fullscreen->string); } } else { - if( vid_fullscreen->integer ) { - if( mode_changed & MODE_MODELIST ) { + if (vid_fullscreen->integer) { + if (mode_changed & MODE_MODELIST) { VID_SetMode(); } } else { - if( mode_changed & MODE_GEOMETRY ) { + if (mode_changed & MODE_GEOMETRY) { VID_SetMode(); } } @@ -239,24 +244,27 @@ void CL_RunRefresh( void ) { mode_changed = 0; } - if( cvar_modified & CVAR_REFRESH ) { - CL_RestartRefresh( qtrue ); + if (cvar_modified & CVAR_REFRESH) { + CL_RestartRefresh(qtrue); cvar_modified &= ~CVAR_REFRESH; - } else if( cvar_modified & CVAR_FILES ) { - CL_RestartRefresh( qfalse ); + } else if (cvar_modified & CVAR_FILES) { + CL_RestartRefresh(qfalse); cvar_modified &= ~CVAR_FILES; } } -static void vid_geometry_changed( cvar_t *self ) { +static void vid_geometry_changed(cvar_t *self) +{ mode_changed |= MODE_GEOMETRY; } -static void vid_fullscreen_changed( cvar_t *self ) { +static void vid_fullscreen_changed(cvar_t *self) +{ mode_changed |= MODE_FULLSCREEN; } -static void vid_modelist_changed( cvar_t *self ) { +static void vid_modelist_changed(cvar_t *self) +{ mode_changed |= MODE_MODELIST; } @@ -265,38 +273,39 @@ static void vid_modelist_changed( cvar_t *self ) { CL_InitRefresh ============ */ -void CL_InitRefresh( void ) { +void CL_InitRefresh(void) +{ char *modelist; - if( cls.ref_initialized ) { + if (cls.ref_initialized) { return; } modelist = VID_GetDefaultModeList(); // Create the video variables so we know how to start the graphics drivers - vid_ref = Cvar_Get( "vid_ref", VID_REF, CVAR_ROM ); - vid_fullscreen = Cvar_Get( "vid_fullscreen", "0", CVAR_ARCHIVE ); - _vid_fullscreen = Cvar_Get( "_vid_fullscreen", "1", CVAR_ARCHIVE ); - vid_modelist = Cvar_Get( "vid_modelist", modelist, 0 ); - vid_geometry = Cvar_Get( "vid_geometry", VID_GEOMETRY, CVAR_ARCHIVE ); - - Z_Free( modelist ); - - if( vid_fullscreen->integer ) { - Cvar_Set( "_vid_fullscreen", vid_fullscreen->string ); - } else if( !_vid_fullscreen->integer ) { - Cvar_Set( "_vid_fullscreen", "1" ); + vid_ref = Cvar_Get("vid_ref", VID_REF, CVAR_ROM); + vid_fullscreen = Cvar_Get("vid_fullscreen", "0", CVAR_ARCHIVE); + _vid_fullscreen = Cvar_Get("_vid_fullscreen", "1", CVAR_ARCHIVE); + vid_modelist = Cvar_Get("vid_modelist", modelist, 0); + vid_geometry = Cvar_Get("vid_geometry", VID_GEOMETRY, CVAR_ARCHIVE); + + Z_Free(modelist); + + if (vid_fullscreen->integer) { + Cvar_Set("_vid_fullscreen", vid_fullscreen->string); + } else if (!_vid_fullscreen->integer) { + Cvar_Set("_vid_fullscreen", "1"); } - Com_SetLastError( NULL ); + Com_SetLastError(NULL); - if( !R_Init( qtrue ) ) { - Com_Error( ERR_FATAL, "Couldn't initialize refresh: %s", Com_GetLastError() ); + if (!R_Init(qtrue)) { + Com_Error(ERR_FATAL, "Couldn't initialize refresh: %s", Com_GetLastError()); } cls.ref_initialized = qtrue; - + vid_geometry->changed = vid_geometry_changed; vid_fullscreen->changed = vid_fullscreen_changed; vid_modelist->changed = vid_modelist_changed; @@ -313,7 +322,7 @@ void CL_InitRefresh( void ) { SCR_RegisterMedia(); Con_RegisterMedia(); - cvar_modified &= ~(CVAR_FILES|CVAR_REFRESH); + cvar_modified &= ~(CVAR_FILES | CVAR_REFRESH); } /* @@ -321,8 +330,9 @@ void CL_InitRefresh( void ) { CL_ShutdownRefresh ============ */ -void CL_ShutdownRefresh( void ) { - if( !cls.ref_initialized ) { +void CL_ShutdownRefresh(void) +{ + if (!cls.ref_initialized) { return; } @@ -337,10 +347,10 @@ void CL_ShutdownRefresh( void ) { vid_fullscreen->changed = NULL; vid_modelist->changed = NULL; - R_Shutdown( qtrue ); + R_Shutdown(qtrue); cls.ref_initialized = qfalse; - Z_LeakTest( TAG_RENDERER ); + Z_LeakTest(TAG_RENDERER); } |