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