[220] AppleSGLX/trunk/glx_pbuffer.c
Revision: 220 http://trac.macosforge.org/projects/xquartz/changeset/220 Author: gstaplin@apple.com Date: 2009-02-21 17:12:49 -0800 (Sat, 21 Feb 2009) Log Message: ----------- Add some support code for glXCreateWindow and glXDestroyWindow. They should work now. Modified Paths: -------------- AppleSGLX/trunk/glx_pbuffer.c Modified: AppleSGLX/trunk/glx_pbuffer.c =================================================================== --- AppleSGLX/trunk/glx_pbuffer.c 2009-02-22 01:12:06 UTC (rev 219) +++ AppleSGLX/trunk/glx_pbuffer.c 2009-02-22 01:12:49 UTC (rev 220) @@ -253,8 +253,56 @@ glXCreateWindow( Display *dpy, GLXFBConfig config, Window win, const int *attrib_list ) { - fprintf(stderr, "%s FIXME", __func__); - abort(); + XWindowAttributes xwattr; + XVisualInfo *visinfo; + + (void)attrib_list; /*unused according to GLX 1.4*/ + + XGetWindowAttributes(dpy, win, &xwattr); + + visinfo = glXGetVisualFromFBConfig(dpy, config); + + if(NULL == visinfo) { + xError error; + + LockDisplay(dpy); + + error.errorCode = GLXBadFBConfig; + error.resourceID = 0; + error.sequenceNumber = dpy->request; + error.type = X_Error; + error.majorCode = 0; + error.minorCode = X_GLXCreateWindow; + _XError(dpy, &error); + + UnlockDisplay(dpy); + + return None; + } + + if(visinfo->visualid != XVisualIDFromVisual(xwattr.visual)) { + xError error; + + XFree(visinfo); + + LockDisplay(dpy); + + error.errorCode = BadMatch; + error.resourceID = 0; + error.sequenceNumber = dpy->request; + error.type = X_Error; + error.majorCode = 0; + error.minorCode = X_GLXCreateWindow; + _XError(dpy, &error); + + UnlockDisplay(dpy); + + return None; + } + + XFree(visinfo); + + return win; } @@ -268,7 +316,5 @@ PUBLIC void glXDestroyWindow(Display *dpy, GLXWindow win) { - fprintf(stderr, "%s FIXME\n", __func__); - abort(); + /* no-op */ } -
participants (1)
-
source_changes@macosforge.org