1 /*This file is a part of luscus project*/
2 /*Licensed under the Academic Free License version 3.0*/
3 #ifdef GTK_GLEXT
4 #define BEGIN_OGL_STUFF \
5         GdkGLContext *glcontext = gtk_widget_get_gl_context(da); \
6         GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(da); \
7         if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) return FALSE
8 
9 #define END_OGL_STUFF gdk_gl_drawable_gl_end(gldrawable);
10 #define SWAP_OGL_BUFFERS gdk_gl_drawable_swap_buffers(gldrawable);
11 #else
12 #ifdef LINUX
13 typedef struct glx_conf
14 {
15   Display *display;
16   GLXContext context;
17   Colormap xcolormap;
18   GdkVisual* visual;
19 } GLXVIS;
20 
21 #ifdef GTK2
22 #define BEGIN_OGL_STUFF \
23         GdkWindow *window = gtk_widget_get_window(da); \
24         int id = gdk_x11_drawable_get_xid(window); \
25         if (!glXMakeCurrent(glxvis.display, id, glxvis.context)) return FALSE
26 
27 /*        Display *display = gdk_x11_display_get_xdisplay(gdk_window_get_display(window)); \*/
28 #endif
29 #ifdef GTK3
30 #define BEGIN_OGL_STUFF \
31         GdkWindow *window = gtk_widget_get_window(da); \
32         int id = gdk_x11_window_get_xid(window); \
33         if (!glXMakeCurrent(glxvis.display, id, glxvis.context)) return FALSE
34 
35 /*        Display *display = gdk_x11_display_get_xdisplay(gdk_window_get_display(window)); \*/
36 #endif
37 #define END_OGL_STUFF
38 
39 #define SWAP_OGL_BUFFERS glXSwapBuffers(glxvis.display, id);
40 
41 #else
42 typedef struct glx_conf
43 {
44   Display *display;
45   int id;
46   this_can_not_be_compiled context;
47 } GLXVIS;
48 #endif
49 
50 #endif
51 
52 
53 
54