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