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