Compositing GL

Chris Robinson chris.kcat at gmail.com
Wed Aug 22 15:48:20 CDT 2007


On Wednesday 22 August 2007 12:58:18 pm Stefan Dösinger wrote:
> I think for applications like css, we shouldn't activate that code at all.
> css renders to a top level window, so it doesn't have any clipping
> problems. The pixel format problem should be fixed in other ways, like
> making it safe to recreate X11 windows, as it seems to be needed for other
> things too.

It would be simple to do this on WGL's end and let it render directly to a 
window after recreating it with the proper visual, although the actual 
recreation may be tricky. As it is though, it can already use the window 
directly if the requested format matches the visual, and it wouldn't be hard 
to add a Wine-specific GL extension for WineD3D to use, if present, to get 
the current format.

> I have tested this with a few apps. Simple d3d8 and d3d7 demos work nicely,
> but the mfctex and mfcfog samples crash with a GLXBadDrawable in
> X_GLXMakeCurrent.

A whole bunch of GLX errors will need to be ignored, especially in the case of 
GLXPixmaps (where the current method to resize is very crude, given the lack 
of a method to resize pixmaps like you can windows). I didn't get those in my 
testing though, so I didn't know if which needed to be ignored yet.

> Wine also complains about missing 
> GLX_MESA_copy_sub_buffer, but it does that in both working and broken
> demos.

That extension is generally required for the GLXPixmap method to work, since 
the GLX specs say that glXSwapBuffers has no effect on them. However, both 
MESA and nVidia's binary drivers seem to have an effect anyway (others may 
also as well). Obviously we can't rely on that, but it should work as-is for 
(future) single-buffered modes, and I plan on attempting to use other methods 
and extensions to get a more reliable swap effect.



More information about the wine-devel mailing list