]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_wgl.c
added -gl_driver commandline option, it's useless though (crashs when I try it on...
[xonotic/darkplaces.git] / vid_wgl.c
index 0c8004be484553a7e02e9f62630a9fb14050ace7..571b5ad72d97d21f13d80ecd985d4e2991f18f8e 100644 (file)
--- a/vid_wgl.c
+++ b/vid_wgl.c
@@ -40,12 +40,6 @@ BOOL (WINAPI *qwglMakeCurrent)(HDC, HGLRC);
 BOOL (WINAPI *qwglSwapIntervalEXT)(int interval);
 const char *(WINAPI *qwglGetExtensionsStringARB)(HDC hdc);
 
-static gl_extensionfunctionlist_t getextensionsstringfuncs[] =
-{
-       {"wglGetExtensionsString", (void **) &qwglGetExtensionsStringARB},
-       {NULL, NULL}
-};
-
 static gl_extensionfunctionlist_t wglfuncs[] =
 {
        {"wglChoosePixelFormat", (void **) &qwglChoosePixelFormat},
@@ -684,13 +678,18 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp)
        DWORD WindowStyle, ExWindowStyle;
        HGLRC baseRC;
        int CenterX, CenterY;
+       const char *gldrivername;
 
        if (vid_initialized)
                Sys_Error("VID_InitMode called when video is already initialised\n");
 
-       if (!GL_OpenLibrary("opengl32.dll"))
+       gldrivername = "opengl32.dll";
+       i = COM_CheckParm("-gl_driver");
+       if (i && i < com_argc - 1)
+               gldrivername = com_argv[i + 1];
+       if (!GL_OpenLibrary(gldrivername))
        {
-               Con_Printf("Unable to load GL driver\n");
+               Con_Printf("Unable to load GL driver %s\n", gldrivername);
                return false;
        }
 
@@ -844,6 +843,7 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp)
        }
 
        qglGetString = GL_GetProcAddress("glGetString");
+       qwglGetExtensionsStringARB = GL_GetProcAddress("wglGetExtensionsStringARB");
        if (qglGetString == NULL)
        {
                VID_Shutdown();
@@ -857,7 +857,7 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp)
        gl_platform = "WGL";
        gl_platformextensions = "";
 
-       if (GL_CheckExtension("WGL_ARB_extensions_string", getextensionsstringfuncs, NULL, false))
+       if (qwglGetExtensionsStringARB)
                gl_platformextensions = qwglGetExtensionsStringARB(hdc);
 
        gl_videosyncavailable = GL_CheckExtension("WGL_EXT_swap_control", wglswapintervalfuncs, NULL, false);