[Xcb] Re: GenericEvents part 2

Barton C Massey bart at cs.pdx.edu
Tue Feb 27 15:09:45 PST 2007

Thanks much: this looks really cool!

In particular, thanks for the XCB stuff; we'll try to
integrate it much faster than we have your last batch. :-)


In message <A223CA8B-312E-4D0C-898A-582920CE7838 at who-t.net> you wrote:
> I continued a bit on XGE and did a bit of a rework on it. As a  
> result, it doesn't break the ABI* any more and it supports long events.
> In short:
> - moved to Xext
> - opcode 35 for GenericEvents
> - no extra work for client side extensions
> - major opcode as extension identifier
> - support for events > 32 bytes
> XGE is part of libXext which seemed to be a good place and also made  
> integration fairly easy. Also allowed me to keep the ABI*.
> I took the liberty of taking opcode 35 to type GenericEvent, made a  
> few things easier.
> Extensions on the client side don't have to register any more,  
> XextAddDisplay takes care of it. The extension's event handling hooks  
> are called for generic events as well. The client side of an  
> extension doesn't really have to do anything more than it does  
> anyway. After all, Xlib is evil enough and you're punished enough if  
> you have to write the standard stuff.
> Instead of some arbitrary number, extensions now use the major opcode  
> as identifier in byte 2 of an event, so we can support up to 128  
> extensions. This means (rough calculation) that if we keep adding  
> extensions at the current rate it'll last somewhere around 100 years,  
> by which I'll be already gone and it'll be somebody else's problem to  
> fix it.
> Probably the most interesting feature is the support for long events.  
> Events can now work like replies, with a length field that specifies  
> the number of 4 byte blocks after the initial 32 bytes. There are  
> some server changes to not automatically assume 32 bytes for an event  
> when delivering and some xcb/xlib changes to receive and pass on the  
> right events. ABI did not break*. Event type is now a CARD16, so  
> daniel can have his 2^16 events per extension.
> I was sending the "lorem ipsum" blah blah as a randomStringEvent   
> (now part of XI), with varying number of bytes. So far, I have tested  
> various string lengths up to 700 bytes. More testing to come, until I  
> can quote it by heart. I think there is a size restriction to 96  
> bytes max in Xlib but for some reason it works nevertheless. Need to  
> dig into this.
> Diffs for libX11, libXext, libxcb, xextproto and xserver are up on  
> http://people.freedesktop.org/~whot/xge/
> git repos for the libs and proto changes are available from http:// 
> gitweb.freedesktop.org/
> Cheers,
>     Peter
> * I didn't really know what an ABI is before yesterday, so I there  
> may be issues left. I tested several standard applications and they  
> don't shout at me anymore.
> --
> Multi-Pointer X Server
> http://wearables.unisa.edu.au/mpx
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg

More information about the Xcb mailing list