1AppleSGLX Release Notes 2 3o OpenGL Support 4 5AppleSGLX supports the same version of OpenGL as Leopard (OpenGL 2.1). 6Many extensions from the OpenGL framework are now builtin. 7 8This adds support for GLSL, and a variety of other features. 9 10o Thread Support 11 12Thread support has been improved since the libGL in XQuartz 2.3.2.1. 13 14o GLX 1.4 Support 15 16The GLX 1.3 and 1.4 functions should all work with a few exceptions 17as outlined in this document. 18 19o glXMakeContextCurrent (a GLX 1.3 feature) 20 21glXMakeContextCurrent should work with the readable drawable. The 22OpenGL functions: glReadPixels, glCopyPixels, and glCopyColorTable, 23should use the readable drawable if it's different than the rendering 24drawable. 25 26o glXGetProcAddress (a GLX 1.4 feature and ARB extension) 27 28glXGetProcAddress should work and allow getting the address of any 29extension functions you may need from the X11 libGL, or OpenGL framework 30libGL. Previous versions of the X11 libGL didn't allow getting the newer 31OpenGL framework addresses. 32 33o GLXPixmaps 34 35New support for GLXPixmaps works well with mixed X11 and OpenGL drawing 36operations. You can create them using glXCreateGLXPixmap or 37glXCreatePixmap. 38 39o GLXPbuffers 40 41Support for GLXPbuffers has been added. These are drawables that are 42not possible to render to with X11, which is allowed by the spec. 43A GLXPbuffer will never generate a clobber event, however 44glXSelectEvent and glXGetSelectedEvent should operate normally. 45 46Clobber events are not generated due to low-level architectural 47differences. The contents of your pbuffers will not be clobbered. 48 49o Shared Contexts 50 51Due to basic low-level architectural differences the usage of shared 52contexts requires a similar visual or GLXFBConfig be used in the 53creation of a shared context. It's best if you specify the same 54visual. This is due to a CGL design difference, and not something 55that is easily worked around. UPDATE: some changes made seem to 56help resolve this issue in many cases, so you may be able to use a 57shared context without this restriction. 58 59 60o Indirect 61 62The X server supports indirect fairly well, so OpenGL applications 63can be run remotely and displayed by XQuartz. This means you can run 64applications from a remote host on an XQuartz X server. 65 66AppleSGLX does not support indirect rendering. Any indirect context 67created will appear to glXIsDirect as an indirect context, but it 68does not actually support indirect rendering to a remote X server. 69 70AppleSGLX supports GLXPixmaps and GLXPbuffers with direct and indirect 71contexts, though they are all direct contexts by definition (see above). 72