X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=vid_wgl.c;h=efefc6eabcd985f213e374ff7549db3a4aabf07b;hb=069527b0cff9d91784bba159329e01b0b94df752;hp=b1417868d4904aba53c8bf8492234d15456921f9;hpb=e411cc7d14dad08cbbe27f5b3af86700f7eb5184;p=xonotic%2Fdarkplaces.git diff --git a/vid_wgl.c b/vid_wgl.c index b1417868..efefc6ea 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -62,12 +62,11 @@ const char *gl_renderer; const char *gl_version; const char *gl_extensions; -qboolean DDActive; qboolean scr_skipupdate; static vmode_t modelist[MAX_MODE_LIST]; static int nummodes; -static vmode_t *pcurrentmode; +//static vmode_t *pcurrentmode; static vmode_t badmode; static DEVMODE gdevmode; @@ -94,14 +93,10 @@ unsigned char vid_curpal[256*3]; HGLRC baseRC; HDC maindc; -glvert_t glv; - HWND WINAPI InitializeWindow (HINSTANCE hInstance, int nCmdShow); viddef_t vid; // global video state -float gldepthmin, gldepthmax; - modestate_t modestate = MS_UNINIT; void VID_MenuDraw (void); @@ -164,7 +159,7 @@ qboolean VID_SetWindowedMode (int modenum) height = rect.bottom - rect.top; // Create the DIB window - mainwindow = CreateWindowEx (ExWindowStyle, "DarkPlaces", "DarkPlacesGL", WindowStyle, rect.left, rect.top, width, height, NULL, NULL, global_hInstance, NULL); + mainwindow = CreateWindowEx (ExWindowStyle, gamename, gamename, WindowStyle, rect.left, rect.top, width, height, NULL, NULL, global_hInstance, NULL); if (!mainwindow) Sys_Error ("Couldn't create DIB window"); @@ -181,8 +176,6 @@ qboolean VID_SetWindowedMode (int modenum) vid.conheight = modelist[modenum].height; if (vid.conwidth > modelist[modenum].width) vid.conwidth = modelist[modenum].width; - vid.width = vid.conwidth; - vid.height = vid.conheight; SendMessage (mainwindow, WM_SETICON, (WPARAM)true, (LPARAM)hIcon); SendMessage (mainwindow, WM_SETICON, (WPARAM)false, (LPARAM)hIcon); @@ -230,7 +223,7 @@ qboolean VID_SetFullDIBMode (int modenum) height = rect.bottom - rect.top; // Create the DIB window - mainwindow = CreateWindowEx (ExWindowStyle, "DarkPlaces", "DarkPlacesGL", WindowStyle, rect.left, rect.top, width, height, NULL, NULL, global_hInstance, NULL); + mainwindow = CreateWindowEx (ExWindowStyle, gamename, gamename, WindowStyle, rect.left, rect.top, width, height, NULL, NULL, global_hInstance, NULL); if (!mainwindow) Sys_Error ("Couldn't create DIB window"); @@ -242,8 +235,6 @@ qboolean VID_SetFullDIBMode (int modenum) vid.conheight = modelist[modenum].height; if (vid.conwidth > modelist[modenum].width) vid.conwidth = modelist[modenum].width; - vid.width = vid.conwidth; - vid.height = vid.conheight; // needed because we're not getting WM_MOVE messages fullscreen on NT window_x = 0; @@ -259,7 +250,7 @@ qboolean VID_SetFullDIBMode (int modenum) int VID_SetMode (int modenum) { int original_mode, temp; - qboolean stat; + qboolean stat = 0; MSG msg; if ((windowed && (modenum != 0)) || (!windowed && (modenum < 1)) || (!windowed && (modenum >= nummodes))) @@ -279,7 +270,7 @@ int VID_SetMode (int modenum) // Set either the fullscreen or windowed mode if (modelist[modenum].type == MS_WINDOWED) { -// if (vid_mouse.value && key_dest == key_game) +// if (vid_mouse.integer && key_dest == key_game) // { // stat = VID_SetWindowedMode(modenum); // usingmouse = true; @@ -343,7 +334,7 @@ int VID_SetMode (int modenum) if (!msg_suppress_1) Con_SafePrintf ("Video mode %s initialized.\n", VID_GetModeDescription (vid_modenum)); - vid.recalc_refdef = 1; +// vid.recalc_refdef = 1; return true; } @@ -370,85 +361,31 @@ void VID_UpdateWindowStatus (void) //==================================== -void VID_CheckMultitexture(void) -{ - qglMTexCoord2f = NULL; - qglSelectTexture = NULL; - gl_mtexable = false; - // Check to see if multitexture is disabled - if (COM_CheckParm("-nomtex")) - { - Con_Printf("...multitexture disabled\n"); - return; - } - // Test for ARB_multitexture - if (!COM_CheckParm("-SGISmtex") && strstr(gl_extensions, "GL_ARB_multitexture ")) - { - Con_Printf("...using GL_ARB_multitexture\n"); - qglMTexCoord2f = (void *) wglGetProcAddress("glMultiTexCoord2fARB"); - qglSelectTexture = (void *) wglGetProcAddress("glActiveTextureARB"); - gl_mtexable = true; - gl_mtex_enum = GL_TEXTURE0_ARB; - } - else if (strstr(gl_extensions, "GL_SGIS_multitexture ")) // Test for SGIS_multitexture (if ARB_multitexture not found) - { - Con_Printf("...using GL_SGIS_multitexture\n"); - qglMTexCoord2f = (void *) wglGetProcAddress("glMTexCoord2fSGIS"); - qglSelectTexture = (void *) wglGetProcAddress("glSelectTextureSGIS"); - gl_mtexable = true; - gl_mtex_enum = TEXTURE0_SGIS; - } - else - Con_Printf("...multitexture disabled (not detected)\n"); -} - -void VID_CheckCVA(void) -{ - qglLockArraysEXT = NULL; - qglUnlockArraysEXT = NULL; - gl_supportslockarrays = false; - if (COM_CheckParm("-nocva")) - { - Con_Printf("...compiled vertex arrays disabled\n"); - return; - } - if (strstr(gl_extensions, "GL_EXT_compiled_vertex_array")) - { - Con_Printf("...using compiled vertex arrays\n"); - qglLockArraysEXT = (void *) wglGetProcAddress("glLockArraysEXT"); - qglUnlockArraysEXT = (void *) wglGetProcAddress("glUnlockArraysEXT"); - gl_supportslockarrays = true; - } -} - /* ================= -GL_BeginRendering - +VID_GetWindowSize ================= */ -void GL_BeginRendering (int *x, int *y, int *width, int *height) +void VID_GetWindowSize (int *x, int *y, int *width, int *height) { *x = *y = 0; *width = WindowRect.right - WindowRect.left; *height = WindowRect.bottom - WindowRect.top; - -// if (!wglMakeCurrent( maindc, baseRC )) -// Sys_Error ("wglMakeCurrent failed"); - -// glViewport (*x, *y, *width, *height); } -void GL_EndRendering (void) +void VID_Finish (void) { int usemouse; - if (r_render.value && !scr_skipupdate) + if (r_render.integer && !scr_skipupdate) + { + glFinish(); SwapBuffers(maindc); + } // handle the mouse state when windowed if that's changed usemouse = false; - if (vid_mouse.value && key_dest == key_game) + if (vid_mouse.integer && key_dest == key_game) usemouse = true; if (modestate == MS_FULLDIB) usemouse = true; @@ -564,7 +501,7 @@ BOOL bSetupPixelFormat(HDC hDC) -byte scantokey[128] = +qbyte scantokey[128] = { // 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 ,27 ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9' ,'0' ,'-' ,'=' ,K_BACKSPACE,9 , // 0 @@ -578,7 +515,7 @@ byte scantokey[128] = }; /* -byte shiftscantokey[128] = +qbyte shiftscantokey[128] = { // 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 ,27 ,'!' ,'@' ,'#' ,'$' ,'%' ,'^' ,'&' ,'*' ,'(' ,')' ,'_' ,'+' ,K_BACKSPACE,9 , // 0 @@ -639,6 +576,7 @@ void ClearAllStates (void) } void VID_RestoreGameGamma(void); +extern qboolean host_loopactive; void AppActivate(BOOL fActive, BOOL minimize) /**************************************************************************** @@ -686,13 +624,14 @@ void AppActivate(BOOL fActive, BOOL minimize) // LordHavoc: from dabb, fix for alt-tab bug in NVidia drivers MoveWindow(mainwindow,0,0,gdevmode.dmPelsWidth,gdevmode.dmPelsHeight,false); } -// else if ((modestate == MS_WINDOWED) && vid_mouse.value && key_dest == key_game) +// else if ((modestate == MS_WINDOWED) && vid_mouse.integer && key_dest == key_game) // { // usingmouse = true; // IN_ActivateMouse (); // IN_HideMouse (); // } - VID_RestoreGameGamma(); + if (host_loopactive) + VID_RestoreGameGamma(); } if (!fActive) @@ -711,7 +650,7 @@ void AppActivate(BOOL fActive, BOOL minimize) vid_wassuspended = true; } } -// else if ((modestate == MS_WINDOWED) && vid_mouse.value) +// else if ((modestate == MS_WINDOWED) && vid_mouse.integer) // { // usingmouse = false; // IN_DeactivateMouse (); @@ -724,11 +663,7 @@ void AppActivate(BOOL fActive, BOOL minimize) LONG CDAudio_MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); /* main window procedure */ -LONG WINAPI MainWndProc ( - HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) +LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { LONG lRet = 1; int fActive, fMinimized, temp; @@ -1044,7 +979,7 @@ void VID_InitDIB (HINSTANCE hInstance) wc.hCursor = LoadCursor (NULL,IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = 0; - wc.lpszClassName = "DarkPlaces"; + wc.lpszClassName = gamename; if (!RegisterClass (&wc) ) Sys_Error ("Couldn't register window class"); @@ -1241,7 +1176,7 @@ void VID_InitFullDIB (HINSTANCE hInstance) Con_SafePrintf ("No fullscreen DIB modes found\n"); } -static int grabsysgamma = true; +//static int grabsysgamma = true; WORD systemgammaramps[3][256], currentgammaramps[3][256]; int VID_SetGamma(float prescale, float gamma, float scale, float base) @@ -1294,7 +1229,7 @@ void VID_Init (void) { int i; // int existingmode; - int basenummodes, width, height, bpp, findbpp, done; + int basenummodes, width, height = 0, bpp, findbpp, done; HDC hdc; DEVMODE devmode; @@ -1518,9 +1453,9 @@ extern void M_Menu_Options_f (void); extern void M_Print (int cx, int cy, char *str); extern void M_PrintWhite (int cx, int cy, char *str); extern void M_DrawCharacter (int cx, int line, int num); -extern void M_DrawPic (int x, int y, qpic_t *pic); +extern void M_DrawPic (int x, int y, char *picname); -static int vid_line, vid_wmodes; +static int vid_wmodes; typedef struct { @@ -1542,17 +1477,17 @@ VID_MenuDraw */ void VID_MenuDraw (void) { - qpic_t *p; - char *ptr; - int lnummodes, i, k, column, row; - vmode_t *pv; + cachepic_t *p; + char *ptr; + int lnummodes, i, k, column, row; + vmode_t *pv; p = Draw_CachePic ("gfx/vidmodes.lmp"); - M_DrawPic ( (320-p->width)/2, 4, p); + M_DrawPic ( (320-p->width)/2, 4, "gfx/vidmodes.lmp"); vid_wmodes = 0; lnummodes = VID_NumModes (); - + for (i=1 ; (i