[Xquartz-dev] 2.4.0_beta1

Jeremy Huddleston jeremyhu at apple.com
Mon Feb 23 10:52:52 PST 2009


Hi everyone.  I'm proud to announce that 2.4.0_beta1 of XQuartz is  
ready.  With this release, we've jumped to the 1.6 server branch,  
updated libX11, libxcb, pixman and various others from their rc  
versions to final release versions, and integrated massive  
improvements to our GLX support thanks to George's hard work.

A list of all changes since 2.3.2.1 can be seen in our ChangeLog:
http://xquartz.macosforge.org/trac/wiki/ChangeLog

And here's the dmg:
http://static.macosforge.org/xquartz/downloads/X11-2.4.0_beta1.dmg

For those that are interested, the source code for our libGL is  
available in svn (see our websvn interface at http://xquartz.macosforge.org/trac/changeset) 
  or from http://xquartz.macosforge.org/downloads/src.

The X11 server is seeing massive changes to its input handling to  
support multiple devices and multitouch.  As such, the 1.6 server  
branch has seen a fair number of changes as a stepping stone toward  
that end.  Unfortunately, all the kinks have not been worked out of  
input handling, so most of the known regressions are related to input:

* capslock doesn't work
* a possible race condition can cause xmodmap to ruin your key mappings
   * workaround:  move your ~/.Xmodmap file somewhere else and load it  
after X has already started
* sometimes X may stop responding to your mouse
   * George has seen this, but I haven't.  If someone can help with  
reproducibility, I'd be grateful

George also has some note regarding the GLX improvement (we now  
support GLX-1.4):

AppleSGLX Release Notes

o OpenGL Support

AppleSGLX supports the same version of OpenGL as Leopard (OpenGL 2.1).
Many extensions from the OpenGL framework are now builtin.

This adds support for GLSL, and a variety of other features.

o Thread Support

Thread support has been improved since the libGL in XQuartz 2.3.2.1.

o GLX 1.4 Support

The GLX 1.3 and 1.4 functions should all work with a few exceptions
as outlined in this document.

o glXMakeContextCurrent (a GLX 1.3 feature)

glXMakeContextCurrent should work with the readable drawable.  The
OpenGL functions: glReadPixels, glCopyPixels, and glCopyColorTable,
should use the readable drawable if it's different than the rendering
drawable.

o glXGetProcAddress (a GLX 1.4 feature and ARB extension)

glXGetProcAddress should work and allow getting the address of any
extension functions you may need from the X11 libGL, or OpenGL framework
libGL.  Previous versions of the X11 libGL didn't allow getting the  
newer
OpenGL framework addresses.

o GLXPixmaps

New support for GLXPixmaps works well with mixed X11 and OpenGL drawing
operations.  You can create them using glXCreateGLXPixmap or
glXCreatePixmap.

o GLXPbuffers

Support for GLXPbuffers has been added.  These are drawables that are
not possible to render to with X11, which is allowed by the spec.
A GLXPbuffer will never generate a clobber event, however
glXSelectEvent and glXGetSelectedEvent should operate normally.

Clobber events are not generated due to low-level architectural
differences.  The contents of your pbuffers will not be clobbered.

o Shared Contexts

Due to basic low-level architectural differences the usage of shared
contexts requires a similar visual or GLXFBConfig be used in the
creation of a shared context.  It's best if you specify the same
visual.  This is due to a CGL design difference, and not something
that is easily worked around.

o Indirect

The X server supports indirect fairly well, so OpenGL applications
can be run remotely and displayed by XQuartz.  This means you can run
applications from a remote host on an XQuartz X server.

AppleSGLX does not support indirect rendering.  Any indirect context
created will appear to glXIsDirect as an indirect context, but it
does not actually support indirect rendering to a remote X server.

AppleSGLX supports GLXPixmaps and GLXPbuffers with direct and indirect
contexts, though they are all direct contexts by definition (see above).





More information about the Xquartz-dev mailing list