2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 slouken@devolution.com
31 #if defined(__OpenBSD__) && !defined(__ELF__)
32 #define dlsym(x,y) dlsym(x, "_" y)
35 #include "SDL_sysvideo.h"
37 struct SDL_PrivateGLData {
38 int gl_active; /* to stop switching drivers while we have a valid context */
41 GLXContext glx_context; /* Current GL context */
42 XVisualInfo* glx_visualinfo; /* XVisualInfo* returned by glXChooseVisual */
44 void * (*glXGetProcAddress)(const GLubyte *procName);
46 XVisualInfo* (*glXChooseVisual)
51 GLXContext (*glXCreateContext)
57 void (*glXDestroyContext)
61 Bool (*glXMakeCurrent)
66 void (*glXSwapBuffers)
68 GLXDrawable drawable );
72 XVisualInfo* visual_info,
76 void (*glXReleaseBuffersMESA)
78 GLXDrawable drawable );
80 #endif /* HAVE_OPENGL */
83 /* Old variable names */
84 #define gl_active (this->gl_data->gl_active)
85 #define glx_context (this->gl_data->glx_context)
86 #define glx_visualinfo (this->gl_data->glx_visualinfo)
88 /* OpenGL functions */
89 extern XVisualInfo *X11_GL_GetVisual(_THIS);
90 extern int X11_GL_CreateWindow(_THIS, int w, int h);
91 extern int X11_GL_CreateContext(_THIS);
92 extern void X11_GL_Shutdown(_THIS);
94 extern int X11_GL_MakeCurrent(_THIS);
95 extern int X11_GL_GetAttribute(_THIS, SDL_GLattr attrib, int* value);
96 extern void X11_GL_SwapBuffers(_THIS);
97 extern int X11_GL_LoadLibrary(_THIS, const char* path);
98 extern void *X11_GL_GetProcAddress(_THIS, const char* proc);
100 extern void X11_GL_UnloadLibrary(_THIS);