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},
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;
}
}
qglGetString = GL_GetProcAddress("glGetString");
+ qwglGetExtensionsStringARB = GL_GetProcAddress("wglGetExtensionsStringARB");
if (qglGetString == NULL)
{
VID_Shutdown();
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);