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