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