aboutsummaryrefslogtreecommitdiffstats
path: root/distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c
diff options
context:
space:
mode:
Diffstat (limited to 'distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c')
-rw-r--r--distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c647
1 files changed, 0 insertions, 647 deletions
diff --git a/distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c b/distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c
deleted file mode 100644
index e807111..0000000
--- a/distrib/sdl-1.2.12/src/video/wincommon/SDL_wingl.c
+++ /dev/null
@@ -1,647 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2006 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-#include "SDL_config.h"
-
-/* WGL implementation of SDL OpenGL support */
-
-#if SDL_VIDEO_OPENGL
-#include "SDL_opengl.h"
-#endif
-#include "SDL_lowvideo.h"
-#include "SDL_wingl_c.h"
-
-#if SDL_VIDEO_OPENGL
-#define DEFAULT_GL_DRIVER_PATH "OPENGL32.DLL"
-#endif
-
-/* If setting the HDC fails, we may need to recreate the window (MSDN) */
-static int WIN_GL_ResetWindow(_THIS)
-{
- int status = 0;
-
-#ifndef _WIN32_WCE /* FIXME WinCE needs the UNICODE version of CreateWindow() */
- /* This doesn't work with DirectX code (see CVS comments) */
- /* If we were passed a window, then we can't create a new one */
- if ( !SDL_windowid && SDL_strcmp(this->name, "windib") == 0 ) {
- /* Save the existing window attributes */
- LONG style;
- RECT rect = { 0, 0, 0, 0 };
- style = GetWindowLong(SDL_Window, GWL_STYLE);
- GetWindowRect(SDL_Window, &rect);
- DestroyWindow(SDL_Window);
- WIN_FlushMessageQueue();
-
- SDL_resizing = 1;
- SDL_Window = CreateWindow(SDL_Appname, SDL_Appname,
- style,
- rect.left, rect.top,
- (rect.right-rect.left)+1,
- (rect.bottom-rect.top)+1,
- NULL, NULL, SDL_Instance, NULL);
- WIN_FlushMessageQueue();
- SDL_resizing = 0;
-
- if ( SDL_Window ) {
- this->SetCaption(this, this->wm_title, this->wm_icon);
- } else {
- SDL_SetError("Couldn't create window");
- status = -1;
- }
- } else
-#endif /* !_WIN32_WCE */
- {
- SDL_SetError("Unable to reset window for OpenGL context");
- status = -1;
- }
- return(status);
-}
-
-#if SDL_VIDEO_OPENGL
-
-static int ExtensionSupported(const char *extension, const char *extensions)
-{
- const char *start;
- const char *where, *terminator;
-
- /* Extension names should not have spaces. */
- where = SDL_strchr(extension, ' ');
- if ( where || *extension == '\0' )
- return 0;
-
- if ( ! extensions )
- return 0;
-
- /* It takes a bit of care to be fool-proof about parsing the
- * OpenGL extensions string. Don't be fooled by sub-strings,
- * etc. */
-
- start = extensions;
-
- for (;;)
- {
- where = SDL_strstr(start, extension);
- if (!where) break;
-
- terminator = where + SDL_strlen(extension);
- if (where == start || *(where - 1) == ' ')
- if (*terminator == ' ' || *terminator == '\0') return 1;
-
- start = terminator;
- }
-
- return 0;
-}
-
-static int ChoosePixelFormatARB(_THIS, const int *iAttribs, const FLOAT *fAttribs)
-{
- HWND hwnd;
- HDC hdc;
- HGLRC hglrc;
- const char * (WINAPI *wglGetExtensionsStringARB)(HDC) = 0;
- const char *extensions;
- int pformat = 0;
- UINT matches = 0;
-
- hwnd = CreateWindow(SDL_Appname, SDL_Appname, WS_POPUP | WS_DISABLED,
- 0, 0, 10, 10,
- NULL, NULL, SDL_Instance, NULL);
- WIN_FlushMessageQueue();
-
- hdc = GetDC(hwnd);
-
- SetPixelFormat(hdc, ChoosePixelFormat(hdc, &GL_pfd), &GL_pfd);
-
- hglrc = this->gl_data->wglCreateContext(hdc);
- if ( hglrc ) {
- this->gl_data->wglMakeCurrent(hdc, hglrc);
- }
-
- wglGetExtensionsStringARB = (const char * (WINAPI *)(HDC))
- this->gl_data->wglGetProcAddress("wglGetExtensionsStringARB");
-
- if( wglGetExtensionsStringARB ) {
- extensions = wglGetExtensionsStringARB(hdc);
- } else {
- extensions = NULL;
- }
-
- this->gl_data->WGL_ARB_pixel_format = 0;
- if( ExtensionSupported("WGL_ARB_pixel_format", extensions) ) {
- BOOL (WINAPI *wglChoosePixelFormatARB)(HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
- wglChoosePixelFormatARB =
- (BOOL (WINAPI *)(HDC, const int *, const FLOAT *, UINT, int *, UINT *))
- this->gl_data->wglGetProcAddress("wglChoosePixelFormatARB");
- if( wglChoosePixelFormatARB &&
- wglChoosePixelFormatARB(hdc, iAttribs, fAttribs, 1, &pformat, &matches) && pformat ) {
- this->gl_data->WGL_ARB_pixel_format = 1;
- }
- }
-
- if ( hglrc ) {
- this->gl_data->wglMakeCurrent(NULL, NULL);
- this->gl_data->wglDeleteContext(hglrc);
- }
- ReleaseDC(hwnd, hdc);
- DestroyWindow(hwnd);
- WIN_FlushMessageQueue();
-
- return pformat;
-}
-
-#endif /* SDL_VIDEO_OPENGL */
-
-int WIN_GL_SetupWindow(_THIS)
-{
- int retval;
-#if SDL_VIDEO_OPENGL
- int i;
- int iAttribs[64];
- int *iAttr;
- float fAttribs[1] = { 0 };
- const GLubyte *(WINAPI *glGetStringFunc)(GLenum);
- const char *wglext;
-
- /* load the gl driver from a default path */
- if ( ! this->gl_config.driver_loaded ) {
- /* no driver has been loaded, use default (ourselves) */
- if ( WIN_GL_LoadLibrary(this, NULL) < 0 ) {
- return(-1);
- }
- }
-
- /* Set up the pixel format descriptor with our needed format */
- SDL_memset(&GL_pfd, 0, sizeof(GL_pfd));
- GL_pfd.nSize = sizeof(GL_pfd);
- GL_pfd.nVersion = 1;
- GL_pfd.dwFlags = (PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL);
- if ( this->gl_config.double_buffer ) {
- GL_pfd.dwFlags |= PFD_DOUBLEBUFFER;
- }
- if ( this->gl_config.stereo ) {
- GL_pfd.dwFlags |= PFD_STEREO;
- }
- GL_pfd.iPixelType = PFD_TYPE_RGBA;
- GL_pfd.cColorBits = this->gl_config.buffer_size;
- GL_pfd.cRedBits = this->gl_config.red_size;
- GL_pfd.cGreenBits = this->gl_config.green_size;
- GL_pfd.cBlueBits = this->gl_config.blue_size;
- GL_pfd.cAlphaBits = this->gl_config.alpha_size;
- GL_pfd.cAccumRedBits = this->gl_config.accum_red_size;
- GL_pfd.cAccumGreenBits = this->gl_config.accum_green_size;
- GL_pfd.cAccumBlueBits = this->gl_config.accum_blue_size;
- GL_pfd.cAccumAlphaBits = this->gl_config.accum_alpha_size;
- GL_pfd.cAccumBits =
- (GL_pfd.cAccumRedBits + GL_pfd.cAccumGreenBits +
- GL_pfd.cAccumBlueBits + GL_pfd.cAccumAlphaBits);
- GL_pfd.cDepthBits = this->gl_config.depth_size;
- GL_pfd.cStencilBits = this->gl_config.stencil_size;
-
- /* setup WGL_ARB_pixel_format attribs */
- iAttr = &iAttribs[0];
-
- *iAttr++ = WGL_DRAW_TO_WINDOW_ARB;
- *iAttr++ = GL_TRUE;
- *iAttr++ = WGL_ACCELERATION_ARB;
- *iAttr++ = WGL_FULL_ACCELERATION_ARB;
- *iAttr++ = WGL_RED_BITS_ARB;
- *iAttr++ = this->gl_config.red_size;
- *iAttr++ = WGL_GREEN_BITS_ARB;
- *iAttr++ = this->gl_config.green_size;
- *iAttr++ = WGL_BLUE_BITS_ARB;
- *iAttr++ = this->gl_config.blue_size;
-
- if ( this->gl_config.alpha_size ) {
- *iAttr++ = WGL_ALPHA_BITS_ARB;
- *iAttr++ = this->gl_config.alpha_size;
- }
-
- *iAttr++ = WGL_DOUBLE_BUFFER_ARB;
- *iAttr++ = this->gl_config.double_buffer;
-
- *iAttr++ = WGL_DEPTH_BITS_ARB;
- *iAttr++ = this->gl_config.depth_size;
-
- if ( this->gl_config.stencil_size ) {
- *iAttr++ = WGL_STENCIL_BITS_ARB;
- *iAttr++ = this->gl_config.stencil_size;
- }
-
- if ( this->gl_config.accum_red_size ) {
- *iAttr++ = WGL_ACCUM_RED_BITS_ARB;
- *iAttr++ = this->gl_config.accum_red_size;
- }
-
- if ( this->gl_config.accum_green_size ) {
- *iAttr++ = WGL_ACCUM_GREEN_BITS_ARB;
- *iAttr++ = this->gl_config.accum_green_size;
- }
-
- if ( this->gl_config.accum_blue_size ) {
- *iAttr++ = WGL_ACCUM_BLUE_BITS_ARB;
- *iAttr++ = this->gl_config.accum_blue_size;
- }
-
- if ( this->gl_config.accum_alpha_size ) {
- *iAttr++ = WGL_ACCUM_ALPHA_BITS_ARB;
- *iAttr++ = this->gl_config.accum_alpha_size;
- }
-
- if ( this->gl_config.stereo ) {
- *iAttr++ = WGL_STEREO_ARB;
- *iAttr++ = GL_TRUE;
- }
-
- if ( this->gl_config.multisamplebuffers ) {
- *iAttr++ = WGL_SAMPLE_BUFFERS_ARB;
- *iAttr++ = this->gl_config.multisamplebuffers;
- }
-
- if ( this->gl_config.multisamplesamples ) {
- *iAttr++ = WGL_SAMPLES_ARB;
- *iAttr++ = this->gl_config.multisamplesamples;
- }
-
- if ( this->gl_config.accelerated >= 0 ) {
- *iAttr++ = WGL_ACCELERATION_ARB;
- *iAttr++ = (this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB : WGL_NO_ACCELERATION_ARB);
- }
-
- *iAttr = 0;
-
- for ( i=0; ; ++i ) {
- /* Get the window device context for our OpenGL drawing */
- GL_hdc = GetDC(SDL_Window);
- if ( GL_hdc == NULL ) {
- SDL_SetError("Unable to get DC for SDL_Window");
- return(-1);
- }
-
- /* Choose and set the closest available pixel format */
- pixel_format = ChoosePixelFormatARB(this, iAttribs, fAttribs);
- if ( !pixel_format ) {
- pixel_format = ChoosePixelFormat(GL_hdc, &GL_pfd);
- }
- if ( !pixel_format ) {
- SDL_SetError("No matching GL pixel format available");
- return(-1);
- }
- if ( !SetPixelFormat(GL_hdc, pixel_format, &GL_pfd) ) {
- if ( i == 0 ) {
- /* First time through, try resetting the window */
- if ( WIN_GL_ResetWindow(this) < 0 ) {
- return(-1);
- }
- continue;
- }
- SDL_SetError("Unable to set HDC pixel format");
- return(-1);
- }
- /* We either succeeded or failed by this point */
- break;
- }
- DescribePixelFormat(GL_hdc, pixel_format, sizeof(GL_pfd), &GL_pfd);
-
- GL_hrc = this->gl_data->wglCreateContext(GL_hdc);
- if ( GL_hrc == NULL ) {
- SDL_SetError("Unable to create GL context");
- return(-1);
- }
- if ( WIN_GL_MakeCurrent(this) < 0 ) {
- return(-1);
- }
- gl_active = 1;
-
- /* Get the wglGetPixelFormatAttribivARB pointer for the context */
- if ( this->gl_data->WGL_ARB_pixel_format ) {
- this->gl_data->wglGetPixelFormatAttribivARB =
- (BOOL (WINAPI *)(HDC, int, int, UINT, const int *, int *))
- this->gl_data->wglGetProcAddress("wglGetPixelFormatAttribivARB");
- } else {
- this->gl_data->wglGetPixelFormatAttribivARB = NULL;
- }
-
- /* Vsync control under Windows. Checking glGetString here is
- * somewhat a documented and reliable hack - it was originally
- * as a feature added by mistake, but since so many people rely
- * on it, it will not be removed. strstr should be safe here.*/
- glGetStringFunc = WIN_GL_GetProcAddress(this, "glGetString");
- if ( glGetStringFunc ) {
- wglext = (const char *)glGetStringFunc(GL_EXTENSIONS);
- } else {
- /* Uh oh, something is seriously wrong here... */
- wglext = NULL;
- }
- if ( wglext && SDL_strstr(wglext, "WGL_EXT_swap_control") ) {
- this->gl_data->wglSwapIntervalEXT = WIN_GL_GetProcAddress(this, "wglSwapIntervalEXT");
- this->gl_data->wglGetSwapIntervalEXT = WIN_GL_GetProcAddress(this, "wglGetSwapIntervalEXT");
- } else {
- this->gl_data->wglSwapIntervalEXT = NULL;
- this->gl_data->wglGetSwapIntervalEXT = NULL;
- }
- if ( this->gl_config.swap_control >= 0 ) {
- if ( this->gl_data->wglSwapIntervalEXT ) {
- this->gl_data->wglSwapIntervalEXT(this->gl_config.swap_control);
- }
- }
-#else
- SDL_SetError("WIN driver not configured with OpenGL");
-#endif
- if ( gl_active ) {
- retval = 0;
- } else {
- retval = -1;
- }
- return(retval);
-}
-
-void WIN_GL_ShutDown(_THIS)
-{
-#if SDL_VIDEO_OPENGL
- /* Clean up OpenGL */
- if ( GL_hrc ) {
- this->gl_data->wglMakeCurrent(NULL, NULL);
- this->gl_data->wglDeleteContext(GL_hrc);
- GL_hrc = NULL;
- }
- if ( GL_hdc ) {
- ReleaseDC(SDL_Window, GL_hdc);
- GL_hdc = NULL;
- }
- gl_active = 0;
-
- WIN_GL_UnloadLibrary(this);
-#endif /* SDL_VIDEO_OPENGL */
-}
-
-#if SDL_VIDEO_OPENGL
-
-/* Make the current context active */
-int WIN_GL_MakeCurrent(_THIS)
-{
- int retval;
-
- retval = 0;
- if ( ! this->gl_data->wglMakeCurrent(GL_hdc, GL_hrc) ) {
- SDL_SetError("Unable to make GL context current");
- retval = -1;
- }
- return(retval);
-}
-
-/* Get attribute data from wgl. */
-int WIN_GL_GetAttribute(_THIS, SDL_GLattr attrib, int* value)
-{
- int retval;
-
- if (attrib == SDL_GL_SWAP_CONTROL) {
- if ( this->gl_data->wglGetSwapIntervalEXT ) {
- *value = this->gl_data->wglGetSwapIntervalEXT();
- return 0;
- }
- return -1;
- }
-
- if ( this->gl_data->wglGetPixelFormatAttribivARB ) {
- int wgl_attrib;
-
- switch(attrib) {
- case SDL_GL_RED_SIZE:
- wgl_attrib = WGL_RED_BITS_ARB;
- break;
- case SDL_GL_GREEN_SIZE:
- wgl_attrib = WGL_GREEN_BITS_ARB;
- break;
- case SDL_GL_BLUE_SIZE:
- wgl_attrib = WGL_BLUE_BITS_ARB;
- break;
- case SDL_GL_ALPHA_SIZE:
- wgl_attrib = WGL_ALPHA_BITS_ARB;
- break;
- case SDL_GL_DOUBLEBUFFER:
- wgl_attrib = WGL_DOUBLE_BUFFER_ARB;
- break;
- case SDL_GL_BUFFER_SIZE:
- wgl_attrib = WGL_COLOR_BITS_ARB;
- break;
- case SDL_GL_DEPTH_SIZE:
- wgl_attrib = WGL_DEPTH_BITS_ARB;
- break;
- case SDL_GL_STENCIL_SIZE:
- wgl_attrib = WGL_STENCIL_BITS_ARB;
- break;
- case SDL_GL_ACCUM_RED_SIZE:
- wgl_attrib = WGL_ACCUM_RED_BITS_ARB;
- break;
- case SDL_GL_ACCUM_GREEN_SIZE:
- wgl_attrib = WGL_ACCUM_GREEN_BITS_ARB;
- break;
- case SDL_GL_ACCUM_BLUE_SIZE:
- wgl_attrib = WGL_ACCUM_BLUE_BITS_ARB;
- break;
- case SDL_GL_ACCUM_ALPHA_SIZE:
- wgl_attrib = WGL_ACCUM_ALPHA_BITS_ARB;
- break;
- case SDL_GL_STEREO:
- wgl_attrib = WGL_STEREO_ARB;
- break;
- case SDL_GL_MULTISAMPLEBUFFERS:
- wgl_attrib = WGL_SAMPLE_BUFFERS_ARB;
- break;
- case SDL_GL_MULTISAMPLESAMPLES:
- wgl_attrib = WGL_SAMPLES_ARB;
- break;
- case SDL_GL_ACCELERATED_VISUAL:
- wgl_attrib = WGL_ACCELERATION_ARB;
- this->gl_data->wglGetPixelFormatAttribivARB(GL_hdc, pixel_format, 0, 1, &wgl_attrib, value);
- if ( *value == WGL_NO_ACCELERATION_ARB ) {
- *value = SDL_FALSE;
- } else {
- *value = SDL_TRUE;
- }
- return 0;
- default:
- return(-1);
- }
- this->gl_data->wglGetPixelFormatAttribivARB(GL_hdc, pixel_format, 0, 1, &wgl_attrib, value);
-
- return 0;
- }
-
- retval = 0;
- switch ( attrib ) {
- case SDL_GL_RED_SIZE:
- *value = GL_pfd.cRedBits;
- break;
- case SDL_GL_GREEN_SIZE:
- *value = GL_pfd.cGreenBits;
- break;
- case SDL_GL_BLUE_SIZE:
- *value = GL_pfd.cBlueBits;
- break;
- case SDL_GL_ALPHA_SIZE:
- *value = GL_pfd.cAlphaBits;
- break;
- case SDL_GL_DOUBLEBUFFER:
- if ( GL_pfd.dwFlags & PFD_DOUBLEBUFFER ) {
- *value = 1;
- } else {
- *value = 0;
- }
- break;
- case SDL_GL_BUFFER_SIZE:
- *value = GL_pfd.cColorBits;
- break;
- case SDL_GL_DEPTH_SIZE:
- *value = GL_pfd.cDepthBits;
- break;
- case SDL_GL_STENCIL_SIZE:
- *value = GL_pfd.cStencilBits;
- break;
- case SDL_GL_ACCUM_RED_SIZE:
- *value = GL_pfd.cAccumRedBits;
- break;
- case SDL_GL_ACCUM_GREEN_SIZE:
- *value = GL_pfd.cAccumGreenBits;
- break;
- case SDL_GL_ACCUM_BLUE_SIZE:
- *value = GL_pfd.cAccumBlueBits;
- break;
- case SDL_GL_ACCUM_ALPHA_SIZE:
- *value = GL_pfd.cAccumAlphaBits;
- break;
- case SDL_GL_STEREO:
- if ( GL_pfd.dwFlags & PFD_STEREO ) {
- *value = 1;
- } else {
- *value = 0;
- }
- break;
- case SDL_GL_MULTISAMPLEBUFFERS:
- *value = 0;
- break;
- case SDL_GL_MULTISAMPLESAMPLES:
- *value = 1;
- break;
- case SDL_GL_SWAP_CONTROL:
- if ( this->gl_data->wglGetSwapIntervalEXT ) {
- *value = this->gl_data->wglGetSwapIntervalEXT();
- return 0;
- } else {
- return -1;
- }
- break;
- default:
- retval = -1;
- break;
- }
- return retval;
-}
-
-void WIN_GL_SwapBuffers(_THIS)
-{
- SwapBuffers(GL_hdc);
-}
-
-void WIN_GL_UnloadLibrary(_THIS)
-{
- if ( this->gl_config.driver_loaded ) {
- FreeLibrary((HMODULE)this->gl_config.dll_handle);
-
- this->gl_data->wglGetProcAddress = NULL;
- this->gl_data->wglCreateContext = NULL;
- this->gl_data->wglDeleteContext = NULL;
- this->gl_data->wglMakeCurrent = NULL;
- this->gl_data->wglGetPixelFormatAttribivARB = NULL;
- this->gl_data->wglSwapIntervalEXT = NULL;
- this->gl_data->wglGetSwapIntervalEXT = NULL;
-
- this->gl_config.dll_handle = NULL;
- this->gl_config.driver_loaded = 0;
- }
-}
-
-/* Passing a NULL path means load pointers from the application */
-int WIN_GL_LoadLibrary(_THIS, const char* path)
-{
- HMODULE handle;
-
- if ( gl_active ) {
- SDL_SetError("OpenGL context already created");
- return -1;
- }
-
- if ( path == NULL ) {
- path = DEFAULT_GL_DRIVER_PATH;
- }
- handle = LoadLibrary(path);
- if ( handle == NULL ) {
- SDL_SetError("Could not load OpenGL library");
- return -1;
- }
-
- /* Unload the old driver and reset the pointers */
- WIN_GL_UnloadLibrary(this);
-
- /* Load new function pointers */
- SDL_memset(this->gl_data, 0, sizeof(*this->gl_data));
- this->gl_data->wglGetProcAddress = (void * (WINAPI *)(const char *))
- GetProcAddress(handle, "wglGetProcAddress");
- this->gl_data->wglCreateContext = (HGLRC (WINAPI *)(HDC))
- GetProcAddress(handle, "wglCreateContext");
- this->gl_data->wglDeleteContext = (BOOL (WINAPI *)(HGLRC))
- GetProcAddress(handle, "wglDeleteContext");
- this->gl_data->wglMakeCurrent = (BOOL (WINAPI *)(HDC, HGLRC))
- GetProcAddress(handle, "wglMakeCurrent");
- this->gl_data->wglSwapIntervalEXT = (void (WINAPI *)(int))
- GetProcAddress(handle, "wglSwapIntervalEXT");
- this->gl_data->wglGetSwapIntervalEXT = (int (WINAPI *)(void))
- GetProcAddress(handle, "wglGetSwapIntervalEXT");
-
- if ( (this->gl_data->wglGetProcAddress == NULL) ||
- (this->gl_data->wglCreateContext == NULL) ||
- (this->gl_data->wglDeleteContext == NULL) ||
- (this->gl_data->wglMakeCurrent == NULL) ) {
- SDL_SetError("Could not retrieve OpenGL functions");
- FreeLibrary(handle);
- return -1;
- }
-
- this->gl_config.dll_handle = handle;
- SDL_strlcpy(this->gl_config.driver_path, path, SDL_arraysize(this->gl_config.driver_path));
- this->gl_config.driver_loaded = 1;
- return 0;
-}
-
-void *WIN_GL_GetProcAddress(_THIS, const char* proc)
-{
- void *func;
-
- /* This is to pick up extensions */
- func = this->gl_data->wglGetProcAddress(proc);
- if ( ! func ) {
- /* This is probably a normal GL function */
- func = GetProcAddress(this->gl_config.dll_handle, proc);
- }
- return func;
-}
-
-#endif /* SDL_VIDEO_OPENGL */