]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_wgl.c
ignore .o files
[xonotic/darkplaces.git] / vid_wgl.c
index 4558d89046cc29d8017b2c12aee17434acd7d509..d8ca7651cb8f6f0265066f31c91ba47fe0c05ad8 100644 (file)
--- a/vid_wgl.c
+++ b/vid_wgl.c
@@ -66,7 +66,7 @@ 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;
@@ -93,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);
@@ -163,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");
@@ -180,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);
@@ -229,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");
@@ -241,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;
@@ -257,16 +249,17 @@ qboolean VID_SetFullDIBMode (int modenum)
 
 int VID_SetMode (int modenum)
 {
-       int                             original_mode, temp;
-       qboolean                stat;
+       int                             original_mode;
+       //int                           temp;
+       qboolean                stat = 0;
     MSG                                msg;
 
        if ((windowed && (modenum != 0)) || (!windowed && (modenum < 1)) || (!windowed && (modenum >= nummodes)))
                Sys_Error ("Bad video mode\n");
 
 // so Con_Printfs don't mess us up by forcing vid and snd updates
-       temp = scr_disabled_for_loading;
-       scr_disabled_for_loading = true;
+//     temp = scr_disabled_for_loading;
+//     scr_disabled_for_loading = true;
 
        CDAudio_Pause ();
 
@@ -278,7 +271,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;
@@ -309,7 +302,7 @@ int VID_SetMode (int modenum)
        VID_UpdateWindowStatus ();
 
        CDAudio_Resume ();
-       scr_disabled_for_loading = temp;
+//     scr_disabled_for_loading = temp;
 
        if (!stat)
                Sys_Error ("Couldn't set video mode");
@@ -342,7 +335,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;
 }
@@ -369,85 +362,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)
+       {
+               qglFinish();
                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;
@@ -498,7 +437,7 @@ void        VID_Shutdown (void)
                // LordHavoc: free textures before closing (may help NVIDIA)
                for (i = 0;i < 8192;i++)
                        temp[i] = i+1;
-               glDeleteTextures(8192, temp);
+               qglDeleteTextures(8192, temp);
 
        if (hRC)
            wglDeleteContext(hRC);
@@ -563,7 +502,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
@@ -577,7 +516,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
@@ -638,6 +577,7 @@ void ClearAllStates (void)
 }
 
 void VID_RestoreGameGamma(void);
+extern qboolean host_loopactive;
 
 void AppActivate(BOOL fActive, BOOL minimize)
 /****************************************************************************
@@ -685,13 +625,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)
@@ -710,7 +651,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 ();
@@ -1039,7 +980,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");
@@ -1236,7 +1177,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)
@@ -1289,7 +1230,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;
 
@@ -1513,9 +1454,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
 {
@@ -1537,17 +1478,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<lnummodes) && (vid_wmodes < MAX_MODEDESCS) ; i++)
        {
                ptr = VID_GetModeDescription (i);