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