Programming composite manager with Xgl
Hi,
I'm going to be developing an OpenGL composite manager. X programming documentation is decent enough (although the whole grabs thing and the solution for it still eludes me somewhat), but documentation for the new interesting stuff like Xgl and the Composite extension is very difficult to find.
I think I have sort of figured out how to at least get started (creating an overlay window, redirecting all other windows, draw their contents using opengl and capture all events and forward them to the correct window). The problem is, both my computers have recent ATI chips, which come with free crappy drivers (meaning no hw acceleration when composite extension is enabled). However it seems that it IS possible to get this to work using Xgl. I tested this with compiz and while I couldn't get any window decorations, it did seem hardware-accelerated to me.
It has proven to be difficult to find any good documentation on what exactly Xgl is/does, why and how this makes the composite extension + hardware acceleration possible on ATI, and what if anything I should do differently when writing a composite manager for it.
I'm also still a bit puzzled about how to solve the whole X grabs problem. I've tried looking at the compiz source code for both this and the Xgl stuff (couldn't find anything specific) but it's not documented, so I didn't learn too much from that.
Any help is greatly appreciated.
|