]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
search for GL functions using GetProcAddress on win32 instead of wglGetProcAddress...
authorlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 14 May 2002 10:43:25 +0000 (10:43 +0000)
committerlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 14 May 2002 10:43:25 +0000 (10:43 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@1830 d7cf8633-e32d-0410-b094-e92efae38249

vid_shared.c

index 4f00421888b38c641bc4bcbbe2317edabc912b57..c0b9fba894b6c40f0d8161467e24232da61de463 100644 (file)
@@ -230,13 +230,17 @@ static gl_extensionfunctionlist_t compiledvertexarrayfuncs[] =
 #include <dlfcn.h>
 #endif
 
-#ifndef WIN32
+#ifdef WIN32
+static HINSTANCE gldll;
+#else
 static void *prjobj = NULL;
 #endif
 
 static void gl_getfuncs_begin(void)
 {
-#ifndef WIN32
+#ifdef WIN32
+       gldll = LoadLibrary("opengl32.dll");
+#else
        if (prjobj)
                dlclose(prjobj);
 
@@ -251,19 +255,20 @@ static void gl_getfuncs_begin(void)
 
 static void gl_getfuncs_end(void)
 {
-#ifndef WIN32
+#ifdef WIN32
+       FreeLibrary(gldll);
+#else
        if (prjobj)
-       {
                dlclose(prjobj);
-               prjobj = NULL;
-       }
+       prjobj = NULL;
 #endif
 }
 
 static void *gl_getfuncaddress(char *name)
 {
 #ifdef WIN32
-       return (void *) wglGetProcAddress(name);
+//     return (void *) wglGetProcAddress(name);
+       return (void *) GetProcAddress(gldll, name);
 #else
        return (void *) dlsym(prjobj, name);
 #endif
@@ -271,6 +276,7 @@ static void *gl_getfuncaddress(char *name)
 
 static int gl_checkextension(char *name, gl_extensionfunctionlist_t *funcs, char *disableparm)
 {
+       int failed = false;
        gl_extensionfunctionlist_t *func;
 
        Con_Printf("checking for %s...  ", name);
@@ -291,9 +297,12 @@ static int gl_checkextension(char *name, gl_extensionfunctionlist_t *funcs, char
                        if (!(*func->funcvariable = (void *) gl_getfuncaddress(func->name)))
                        {
                                Con_Printf("missing function \"%s\"!\n", func->name);
-                               return false;
+                               failed = true;
                        }
                }
+               // delay the return so it prints all missing functions
+               if (failed)
+                       return false;
                Con_Printf("enabled\n");
                return true;
        }