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