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