Xgl and redirecting events

Heinrich Janzing h.janzing at myrealbox.com
Thu Jan 4 04:25:51 PST 2007


Hi,

Due to my hardware (ATI) I am forced to use Xgl for development of my OpenGL 
compositor in order to get hardware acceleration (otherwise I would have 
opted for AIGLX).

Like Looking Glass, my windows are not displayed in a strictly 2D manner 
anymore. This means that like LG I will have to use event redirection. I was 
going to use Xevie for this. Since Xgl doesn't support Xevie (yet?) I figured 
I could connect to the underlying X server and use Xevie on that to intercept 
events (assuming that it still handles the hardware events, which seemed to 
be the case).

It is quite hard to find documentation on how Xgl really works. Am I right to 
assume that as far as the underlying X server is concerned, the only window 
existing is the Xgl one? This would mean that I cannot send the modified 
events back using XevieSend. I could just use Xevie for intercepting events, 
and rather than sending them back using XevieSend, send them (after 
modification) to Xgl using XSendEvent, but then they will be ignored by many 
(if not most) apps due to the synthetic flag.

I also read that even when using Xevie you need to modify the DIX (whatever 
that stands for) to accept events with the window field already set... (in 
this presentation: 
http://www.sun.com/software/looking_glass/docs/LG-Xdevconf.pdf) This is of 
course assuming that the Xgl event handling is similar to that of the normal 
x server.

Is there some better solution than trying to implement Xevie (or at least a 
means of sending non-synthetic events) in Xgl? I have zero experience working 
on the X/Xgl code so this would certainly take a lot of time. If this is 
really the only way some pointers on how to write x server extensions would 
be very helpful. I'd like to keep modifications to the Xgl source code to a 
minimum though.

I'm also getting a ton of these xlib: sequence lost errors when using Xevie... 
Is this fixed yet in cvs?

Thanks,

Heinrich



More information about the xorg mailing list