From 55a593206761a8e3db4f9db23dd6663d5873ca8f Mon Sep 17 00:00:00 2001 From: tomaz Date: Sat, 11 Sep 2004 22:02:20 +0000 Subject: [PATCH] Added vid_vsync cvar and also to put it in the video options menu. git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4485 d7cf8633-e32d-0410-b094-e92efae38249 --- menu.c | 12 ++++++++++-- vid.h | 1 + vid_shared.c | 2 ++ vid_wgl.c | 9 +++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/menu.c b/menu.c index 3c3c5e54..c4de8c30 100644 --- a/menu.c +++ b/menu.c @@ -2365,10 +2365,10 @@ void M_Keys_Key (int k, char ascii) //============================================================================= /* VIDEO MENU */ -#define VIDEO_ITEMS 4 +#define VIDEO_ITEMS 5 int video_cursor = 0; -int video_cursor_table[] = {56, 68, 80, 100}; +int video_cursor_table[] = {56, 68, 80, 100, 120}; // note: if modes are added to the beginning of this list, update the // video_resolution = x; in M_Menu_Video_f below unsigned short video_resolutions[][2] = {{320,240}, {400,300}, {512,384}, {640,480}, {800,600}, {1024,768}, {1152,864}, {1280,960}, {1280,1024}, {1600,1200}, {1792,1344}, {1920,1440}, {2048,1536}, {0,0}}; @@ -2435,6 +2435,10 @@ void M_Video_Draw (void) // "Apply" button M_Print(220, video_cursor_table[3], "Apply"); + // Vertical Sync + M_Print(16, video_cursor_table[4], " Vertical Sync"); + M_DrawCheckbox(220, video_cursor_table[4], vid_vsync.integer); + // Cursor M_DrawCharacter(200, video_cursor_table[video_cursor], 12+((int)(realtime*4)&1)); } @@ -2469,6 +2473,10 @@ void M_Menu_Video_AdjustSliders (int dir) case 2: Cvar_SetValueQuick (&vid_fullscreen, !vid_fullscreen.integer); break; + + case 4: + Cvar_SetValueQuick (&vid_vsync, !vid_vsync.integer); + break; } } diff --git a/vid.h b/vid.h index 5325f9d3..3ab17614 100644 --- a/vid.h +++ b/vid.h @@ -50,6 +50,7 @@ extern cvar_t vid_fullscreen; extern cvar_t vid_width; extern cvar_t vid_height; extern cvar_t vid_bitsperpixel; +extern cvar_t vid_vsync; extern cvar_t vid_mouse; extern cvar_t gl_combine; diff --git a/vid_shared.c b/vid_shared.c index 8851e21d..93262be9 100644 --- a/vid_shared.c +++ b/vid_shared.c @@ -71,6 +71,7 @@ cvar_t vid_width = {CVAR_SAVE, "vid_width", "640"}; cvar_t vid_height = {CVAR_SAVE, "vid_height", "480"}; cvar_t vid_bitsperpixel = {CVAR_SAVE, "vid_bitsperpixel", "32"}; +cvar_t vid_vsync = {CVAR_SAVE, "vid_vsync", "1"}; cvar_t vid_mouse = {CVAR_SAVE, "vid_mouse", "1"}; cvar_t gl_combine = {CVAR_SAVE, "gl_combine", "1"}; cvar_t gl_finish = {0, "gl_finish", "0"}; @@ -971,6 +972,7 @@ void VID_Shared_Init(void) Cvar_RegisterVariable(&vid_width); Cvar_RegisterVariable(&vid_height); Cvar_RegisterVariable(&vid_bitsperpixel); + Cvar_RegisterVariable(&vid_vsync); Cvar_RegisterVariable(&vid_mouse); Cvar_RegisterVariable(&gl_combine); Cvar_RegisterVariable(&gl_finish); diff --git a/vid_wgl.c b/vid_wgl.c index ffdc689d..afa865cf 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -305,6 +305,15 @@ void VID_Finish (void) { HDC hdc; int vid_usemouse; + static int old_vsync = -1; + + if (old_vsync != vid_vsync.integer) + { + old_vsync = bound(0, vid_vsync.integer, 1); + Cvar_SetValueQuick(&vid_vsync, old_vsync); + qwglSwapIntervalEXT (old_vsync); + } + if (r_render.integer && !scr_skipupdate) { if (r_speeds.integer || gl_finish.integer) -- 2.39.2