From 3ef2925cd8836b6ff48652add07d9cf062caf212 Mon Sep 17 00:00:00 2001 From: Spoike Date: Tue, 12 Mar 2013 23:16:20 +0000 Subject: [PATCH] ------------------------------------------------------------------------ r4241 | acceptthis | 2013-03-08 02:42:39 +0000 (Fri, 08 Mar 2013) | 1 line Delay gamma changes, to avoid issues with ATI. ------------------------------------------------------------------------ git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4237 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/sys_win.c | 11 +++++++++++ engine/gl/gl_vidnt.c | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/engine/client/sys_win.c b/engine/client/sys_win.c index 0dc9de8e7..fb1501446 100644 --- a/engine/client/sys_win.c +++ b/engine/client/sys_win.c @@ -51,6 +51,7 @@ qboolean isDedicated = false; #endif extern qboolean isPlugin; qboolean debugout; +float gammapending; //to cope with ATI. When it times out, v_gamma is reforced in order to correct/update gamma now the drivers think that they have won. HWND sys_parentwindow; unsigned int sys_parentleft; //valid if sys_parentwindow is set @@ -1506,6 +1507,16 @@ void Sys_SendKeyEvents (void) return; } + if (gammapending) + { + gammapending -= host_frametime; + if (gammapending < host_frametime) + { + gammapending = 0; + Cvar_ForceCallback(&v_gamma); + } + } + while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { // we always update if there are any event, even if we're paused diff --git a/engine/gl/gl_vidnt.c b/engine/gl/gl_vidnt.c index 180e8d2f4..f18fafe3b 100644 --- a/engine/gl/gl_vidnt.c +++ b/engine/gl/gl_vidnt.c @@ -143,6 +143,8 @@ viddef_t vid; // global video state modestate_t modestate = MS_UNINIT; +extern float gammapending; + LONG WINAPI GLMainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); qboolean GLAppActivate(BOOL fActive, BOOL minimize); @@ -1821,7 +1823,8 @@ qboolean GLAppActivate(BOOL fActive, BOOL minimize) } } - Cvar_ForceCallback(&v_gamma); + gammapending = 0.5; //delayed gamma force + Cvar_ForceCallback(&v_gamma); //so the delay isn't so blatent when you have decent graphics drivers that don't break things. } if (!fActive) @@ -1834,7 +1837,7 @@ qboolean GLAppActivate(BOOL fActive, BOOL minimize) } } - Cvar_ForceCallback(&v_gamma); //wham bam thanks. +// Cvar_ForceCallback(&v_gamma); //wham bam thanks. if (qSetDeviceGammaRamp) {