[Xevie] Here is the presentation I plan to present at xdevconf
Deron.Johnson at Sun.COM
Tue Feb 8 16:07:39 PST 2005
On the last agenda I saw, Jim has Keith and I presenting on "Input
Redirection." Here is a presentation on the aspect of this that I have
been working on. If you have some time, I'd very much appreciate
feedback before I present this to a wider audience.
Basically, what I have been working on is a way of bringing together in
one place all of the things that a 3D window system needs to perform
it's special style of input redirection: the event stream, 3D scene
graph, and X window tree. After exploring many alternatives and
implementing one of these (it wasn't that good), I've decided that the
most promising approach is to bring all of these together in a special
client called the Event Manager. I've taken the X server code (mostly
from dix/events.c and dix/grabs.c) and I've made it so that it can run
either in the X server or in the Event Manager client. I call this code
XME (X Modular Event system). Special server code handles the exporting
of the event stream, window tree and grab requests to the Event Manager
client. The Event Manager processes the events in the same way the X
server would and then sends the processed events back to the X Server
for distribution to the appropriate X clients. I've currently
implemented a proof-of-concept prototype which runs as a standalone
client, but in the future I plan to integrate it into the LG Display
Server, where it will be combined with 3D picking.
One thing which is important to note is that X window tree changes are
sent over synchronously in the same event stream as raw input device
events. Thus, the same event stream processing which would have occurred
in the server can occur in the Event Manager client. This, I feel, is an
advantage over exporting the window tree via shared memory. In a shared
memory scheme, events from the past are combined with window tree data
from the future, so the processing isn't necessarily exactly the same as
what the X server would perform.
Also note that the XME concept dovetails nicely (I believe) with Keith's
generalized Input Redirection concept. XME can use Input Redirection as
its source of input events. Also, XME could be used as a starting point
for implementing Input Redirection clients--rather than having to
implement all of a client's unique event processing from scratch, if
there are some similarities with what the X Server does, XME could be
used as a starting point, tweaking it as necessary.
If you have the time, I would really appreciate it if you could let me
know what you think prior to the conference. If you think the idea is
bogus or flawed I'd like to have a chance to address your concerns in
person rather than in front of a big audience.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 70431 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/xevie/attachments/20050208/6234a6b0/xme-0001.pdf
More information about the xevie