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