void (*my_glClear) (GLbitfield);
void (*my_glClearColor) (GLclampf, GLclampf, GLclampf, GLclampf);
-void (*my_glLoadIdentity) (void);
-void (*my_glMatrixMode) (GLenum);
-void (*my_glOrtho) (GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
void (*my_glViewport) (GLint, GLint, GLsizei, GLsizei);
XVisualInfo * (*my_glXChooseVisual) (Display *, int, int *);
GLXContext (*my_glXCreateContext) (Display *, XVisualInfo *, GLXContext, Bool);
Bool (*my_glXMakeCurrent) (Display *, GLXDrawable, GLXContext);
void (*my_glXSwapBuffers) (Display *, GLXDrawable);
-#define HANDLE_EVENTS_GL_PREFIX my_
-#include "handle-events.c"
+#define COMMON_GL_PREFIX my_
+#include "common.c"
static void
resolve_symbols (void)
exit (1);
}
- my_glLoadIdentity = dlsym (gl_handle, "glLoadIdentity");
- error = dlerror ();
- if (error) {
- fprintf (stderr, "Failed to dlsym glLoadIdentity: %s\n", error);
- exit (1);
- }
-
- my_glMatrixMode = dlsym (gl_handle, "glMatrixMode");
- error = dlerror ();
- if (error) {
- fprintf (stderr, "Failed to dlsym glMatrixMode: %s\n", error);
- exit (1);
- }
-
- my_glOrtho = dlsym (gl_handle, "glOrtho");
- error = dlerror ();
- if (error) {
- fprintf (stderr, "Failed to dlsym glOrtho: %s\n", error);
- exit (1);
- }
-
my_glViewport = dlsym (gl_handle, "glViewport");
error = dlerror ();
if (error) {
{
Display *dpy;
Window window;
+ GLXContext ctx;
+ XVisualInfo *visual_info;
- util_x11_init_display (&dpy);
+ resolve_symbols ();
- util_x11_init_window (dpy, &window);
+ dpy = util_x11_init_display ();
- resolve_symbols ();
+ common_create_glx_context (dpy, &ctx, &visual_info);
+
+ window = util_x11_init_window (dpy, visual_info);
+
+ common_make_current (dpy, ctx, window);
- handle_events (dpy, window);
+ common_handle_events (dpy, dpy, window);
util_x11_fini_window (dpy, window);