simpledisplay.d now works on as 64 bit on X
Marco Leise
Marco.Leise at gmx.de
Sun Jun 2 17:15:23 PDT 2013
Am Mon, 03 Jun 2013 01:02:12 +0200
schrieb "Adam D. Ruppe" <destructionator at gmail.com>:
> On Sunday, 2 June 2013 at 21:53:56 UTC, Marco Leise wrote:
> > Also eventually we should generate X bindings for all
> > platforms (including Windows) from the XML definitions like
> > XCB does.
>
> hmm I don't see an xml file for Xlib.h on my system, do you know
> if there is supposed to be one? Though I'm pretty sure I have
> most of it correct now, so I guess it isn't really necessary.
XCB is generated from these XML files. They have nothing to do
with Xlib. You can find the XML files here:
http://cgit.freedesktop.org/xcb/proto/tree/src
A generator tool for the target language (C in this case)
parses them and creates include files from them that define
all the remote procedure calls to the X Server. Internally
those calls rely on a small generic set of functions that
serializes the requests for transmission.
What is needed are those generic functions written in D to
establish the connection to the server and handling
serialization, probably relying on std.socket.
And then an XML parser that would write out .d files for the
different modules of the X Server, like xrandr, xkb and so on,
which are all available as separate XML files.
This is what a RPC from glx.xml looks like:
<request name="GenTextures" opcode="145">
<field type="CONTEXT_TAG" name="context_tag" />
<field type="INT32" name="n" />
<reply>
<pad bytes="1" />
<pad bytes="24" />
<list type="CARD32" name="data">
<fieldref>length</fieldref>
</list>
</reply>
</request>
In general they also include documentation tags which can be
made available through DDoc automatically and displayed in
IDEs like Mono-D already does.
> I know everybody says Xlib is dying but I still use it. It is
> simple enough and gets the job done without having to learn a
> whole thing library...
The big deal about it is asynchronous RCP especially over
internet connections to X Servers, since with Xlib you have to
way for each response before the next request.
--
Marco
More information about the Digitalmars-d-announce
mailing list