#include #include #include #include int main() { Display *dpy; unsigned long mask; int scn_id; int attrib [] = { GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_DOUBLEBUFFER, None }; XVisualInfo *visinfo; XSetWindowAttributes attr; int dwidth=1024; int dheight=1024; if(!(dpy = XOpenDisplay(NULL))) return(1); Window rwin = DefaultRootWindow(dpy); scn_id = DefaultScreen(dpy); visinfo = glXChooseVisual(dpy, scn_id, attrib); memset(&attr, 0, sizeof(XSetWindowAttributes)); Window win = XCreateWindow(dpy, rwin, 0, 0, dwidth, dheight, 0, visinfo->depth, InputOutput, visinfo->visual, mask, &attr ); XSync(dpy, True); GLXContext ctx = glXCreateContext(dpy, visinfo, NULL, GL_TRUE); XSync(dpy, False); if(!ctx) { fprintf(stderr, "[video-gl] Error: glXCreateContext failed\n"); printf("[video-gl] Error: glXCreateContext failed"); exit(1); } fprintf(stderr, "[video-gl]: Create Context: Direct Rendering: %s\n", (glXIsDirect(dpy, ctx)) ? "YES :-)" : "NO :-(("); glXMakeCurrent(dpy, win, ctx); fprintf(stderr, "[video-gl]: OpenGL Vendor : %s\n", glGetString(GL_VENDOR)); fprintf(stderr, "[video-gl]: OpenGL Renderer: %s\n", glGetString(GL_RENDERER)); fprintf(stderr, "[video-gl]: OpenGL Version : %s\n", glGetString(GL_VERSION)); fprintf(stderr, "[video-gl]: Direct Rendering: %s\n", (glXIsDirect(dpy, ctx)) ? "YES :-)" : "NO :-(("); return(0); }