[Xcb] initial glx.xml file

Barton C Massey bart@cs.pdx.edu
Mon Jan 17 22:19:21 PST 2005


Very cool!  The fact that you were able to do this much this
quickly is quite impressive.  Looks like the XML was pretty
figure-outable?  I'll let Josh and Jamey poke through it and
make their comments.

Presumably the next piece is to wire the Mesa API to call
into this stuff instead of Xlib?

	Bart

In message <41ECA781.5080103@brandeis.edu> you wrote:
> This is a multi-part message in MIME format.
> --------------050902010000030805040408
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> Content-Transfer-Encoding: 7bit
> 
> Here's what I have so far after a few hours of working on it.  If this 
> could get put in the repository that would be cool (though it's probably 
> not good enough so far).
> 
> I took the requests/replies and made all of the core GLX ones.  I didn't 
> do the vendor specific stuff (SGI, NV, ARB, etc.).  I also haven't 
> figured out yet what to make into enums/types yet.
> 
> I haven't tested any of it (it's beyond me how to do that yet) but if 
> anyone's interested here's the file, it's certainly a start.
> 
> Jeremy
> 
> --------------050902010000030805040408
> Content-Type: text/xml;
>  name="glx.xml"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
>  filename="glx.xml"
> 
> <?xml version="1.0" encoding="utf-8"?>
> 
> <!--
> Jeremy Kolb - jkolb@brandeis.edu
> 
> 1/18/2005 - Initial version (core requests/replies I think)
> 	All the vendor stuff I ignored, not sure if I should add that or not.
> 	I *think* these are the GLX wire requests and not the GLX API, there is
> 	some overlap though apparently.
> 
> 	TODO:
> 		Make sure these are the proper requests/replies.
> 		Verify that all of the requests/replies work.
> 		Add enums and stuff.
> 		Add Vendor requests maybe?
> -->
> <xcb header="glx" extension-xname="GLX" extension-name="GLX">
>     <!-- target support: 1.3 -->
> 	<!--
> 	<typedef oldname="CARD32" newname="ContextID" />
>     <typedef oldname="CARD32" newname="Pixmap" />
> 	<typedef oldname="CARD32" newname="Drawable" />
> 	<typedef oldname="CARD32" newname="Pbuffer" />
> 	<typedef oldname="CARD32" newname="Window" />
> 	<typedef oldname="CARD32" newname="FBConfigID" />
> 	<typedef oldname="CARD32" newname="FBConfigIDSGIX" />
> 	<typedef oldname="CARD32" newname="PbufferSGIX" />
> 	-->
> 
>     <!-- Errors -->
>     <error name="BadContext" number="0" />
>     <error name="BadContextState" number="1" />
>     <error name="BadDrawable" number="2" />
>     <error name="BadPixmap" number="3" />
>     <error name="BadContextTag" number="4" />
>     <error name="BadCurrentWindow" number="5" />
>     <error name="BadRenderRequest" number="6" />
>     <error name="BadLargeRequest" number="7" />
>     <error name="UnsupportedPrivateRequest" number="8" />
>     <error name="BadFBConfig" number="9" />
>     <error name="BadPbuffer" number="10" />
>     <error name="BadCurrentDrawable" number="11" />
>     <error name="BadWindow" number="12" />
> 
> 	
> 	<request name="Render" opcode="1">
> 		<field type="CARD32" name="contextTag" />
> 	</request>
> 
> 	<request name="RenderLarge" opcode="2">
> 		<field type="CARD32" name="contextTag" />
> 		<field type="CARD16" name="requestNum" />
> 		<field type="CARD16" name="requestTotal" />
> 	</request>
> 
> 	<!-- Not sure about this one, it lacks an opcode -->	
> 	<request name="Single">
> 		<field type="CARD32" name="contextTag" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="retval" />
> 			<field type="CARD32" name="size" />
> 			<pad bytes="16" />
> 		</reply>
> 	</request>
> 	
> 
> 	<request name="CreateContext" opcode="3">
> 		<field type="CARD32" name="context" />
> 		<field type="CARD32" name="visual" />
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="shareList" />
> 		<field type="BOOL" name="isDirect" />
> 		<field type="CARD8" name="reserved1" />
> 		<field type="CARD16" name="reserved2" />
> 	</request>
> 
> 	<request name="DestroyContext" opcode="4">
> 		<field type="CARD32" name="context" />
> 	</request>
> 
> 	<request name="MakeCurrent" opcode="5">
> 		<field type="CARD32" name="drawable" />
> 		<field type="CARD32" name="context" />
> 		<field type="CARD32" name="oldContextTag" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="contextTag" />
> 			<pad bytes="36" />
> 		</reply>
> 	</request>
> 
> 	<request name="IsDirect" opcode="6">
> 		<field type="CARD32" name="context" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="BOOL" name="isDirect" />
> 			<pad bytes="22" />
> 		</reply>
> 	</request>
> 
> 	<request name="QueryVersion" opcode="7">
> 		<field type="CARD32" name="major_version" />
> 		<field type="CARD32" name="minor_version" />
> 		<reply>
> 			<pad bytes="1" />
> 	      	<field type="CARD32" name="major_version" />
> 			<field type="CARD32" name="minor_version" />
> 			<pad bytes="16" />
> 		</reply>
> 	</request>
> 	
> 	<request name="WaitGL" opcode="8">
> 		<field type="CARD32" name="contextTag" />
> 	</request>
> 
> 	<request name="WaitX" opcode="9">
> 		<field type="CARD32" name="contextTag" />
> 	</request>
> 
> 	<request name="CopyContext" opcode="10">
> 		<field type="CARD32" name="source" />
> 		<field type="CARD32" name="dest" />
> 		<field type="CARD32" name="mask" />
> 		<field type="CARD32" name="contextTag" />
> 	</request>
> 
> 	<request name="SwapBuffers" opcode="11">
> 		<field type="CARD32" name="contextTag" />
> 		<field type="CARD32" name="drawable" />
> 	</request>
> 
> 	<request name="UseXFont" opcode="12">
> 		<field type="CARD32" name="contextTag" />
> 		<field type="CARD32" name="font" />
> 		<field type="CARD32" name="first" />
> 		<field type="CARD32" name="count" />
> 		<field type="CARD32" name="listBase" />
> 	</request>
> 
> 	<request name="CreateGLXPixmap" opcode="13">
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="visual" />
> 		<field type="CARD32" name="pixmap" />
> 		<field type="CARD32" name="glxpixmap" />
> 	</request>
> 
> 	<request name="GetVisualConfigs" opcode="14">
> 		<field type="CARD32" name="screen" />
> 		<reply>
> 			<pad byte="1" />
> 			<field type="CARD32" name="numVisuals" />
> 			<field type="CARD32" name="numProps" />
> 			<pad byes="16" />
> 		</reply>
> 	</request>
> 
> 	<request name="DestroyGLXPixmap" opcode="15">
> 		<field type="CARD32" name="glxpixmap" />
> 	</request>
> 
> 	<request name="VendorPrivate" opcode="16">
> 		<field type="CARD32" name="vendorCode" />
> 		<field type="CARD32" name="contextTag" />
> 	</request>
> 
> 	<request name="VendorPrivateWithReply" opcode="17">
> 		<field type="CARD32" name="vendorCode" />
> 		<field type="CARD32" name="contextTag" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="retval" />
> 			<field type="CARD32" name="size" />
> 			<pad bytes="16" />
> 		</reply>
> 	</request>
> 
> 	<request name="QueryExtensionsString" opcode="18">
> 		<field type="CARD32" name="screen" />
> 		<reply>
> 			<pad bytes="1" />
> 			<pad bytes="4" />
> 			<field type="CARD32" name="n" />
> 			<pad byes="16" />
> 		</reply>
> 	</request>
> 
> 	<request name="QueryServerString" opcode="19">
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="name" />
> 		<reply>
> 			<pad bytes="1" />
> 			<pad bytes="4" />
> 			<field type="CARD32" name="n" />
> 			<pad byes="16" />
> 		</reply>
> 	</request>
> 
> 	<request name="ClientInfo" opcode="20">
> 		<field type="CARD32" name="major" />
> 		<field type="CARD32" name="minor" />
> 		<field type="CARD32" name="num_bytes" />
> 	</request>
> 
> 	<!-- Start of GLX 1.3 Requests -->
> 
> 	<request name="GetFBConfigs" opcode="21">
> 		<field type="CARD32" name="screen" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="numFBConfigs" />
> 			<field type="CARD32" name="numAttribs" />
> 			<pad bytes="16" />
> 		</reply>
> 	</request>
> 
> 	<request name="CreatePixmap" opcode="22">
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="fbconfig" />
> 		<field type="CARD32" name="pixmap" />
> 		<field type="CARD32" name="glxpixmap" />
> 		<field type="CARD32" name="numAttribs" />
> 		<!-- followed by attribute list -->
> 	</request>
> 
> 	<request name="DestroyPixmap" opcode="23">
> 		<field type="CARD32" name="glxpixmap" />
> 	</request>
> 
> 	<request name="CreateNewContext" opcode="24">
> 		<field type="CARD32" name="context" />
> 		<field type="CARD32" name="fbconfig" />
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="renderType" />
> 		<field type="CARD32" name="shareList" />
> 		<field type="BOOL" name="isDirect" />
> 		<field type="CARD8" name="reserved1" />
> 		<field type="CARD16" name="reserved2" />
> 	</request>
> 
> 	<request name="QueryContext" opcode="25">
> 		<field type="CARD32" name="context" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="n" />
> 			<pad bytes="20" />
> 		</reply>
> 	</request>
> 
> 	<request name="MakeContextCurrent" opcode="26">
> 		<field type="CARD32" name="oldContextTag" />
> 		<field type="CARD32" name="drawable" />
> 		<field type="CARD32" name="readdrawable" />
> 		<field type="CARD32" name="context" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="contextTag" />
> 			<pad byes="20" />
> 		</reply>
> 	</request>
> 
> 	<request name="CreatePbuffer" opcode="27">
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="fbconfig" />
> 		<field type="CARD32" name="pbuffer" />
> 		<field type="CARD32" name="numAttribs" />
> 		<!-- followed by attribute list -->
> 		<reply>
> 			<!--
> 			From glxproto.h:
> 			/*
> 			** glXCreateGLXPbuffer reply
> 			** This is used only in the direct rendering case on SGIs - otherwise
> 			**  CreateGLXPbuffer has no reply. It is not part of GLX 1.3.
> 			*/
> 
> 			So not sure what to do about this.
> 			-->
> 			<field type="CARD8" name="success" />
> 			<pad bytes="24" />
> 		</reply>
> 	</request>
> 
> 	<request name="DestroyPbuffer" opcode="28">
> 		<field type="CARD32" name="pbuffer" />
> 	</request>
> 
> 	<request name="GetDrawableAttributes" opcode="29">
> 		<field type="CARD32" name="drawable" />
> 		<reply>
> 			<pad bytes="1" />
> 			<field type="CARD32" name="numAttribs" />
> 			<pad bytes="20" />
> 		</reply>
> 	</request>
> 
> 	<request name="ChangeDrawableAttributes" opcode="30">
> 		<field type="CARD32" name="drawable" />
> 		<field type="CARD32" name="numAttribs" />
> 	</request>
> 
> 	<request name="CreateWindow" opcode="31">
> 		<field type="CARD32" name="screen" />
> 		<field type="CARD32" name="fbconfig" />
> 		<field type="CARD32" name="window" />
> 		<field type="CARD32" name="numAttribs" />
> 	</request>
> 
> 	<request name="DeleteWindow" opcode="32">
> 		<field type="CARD32" name="glxwindow" />
> 	</request>
> 	
> 	<!--
> 	#define X_GLXCreateWindow                31
> 	#define X_GLXDestroyWindow               32
> 	-->
> 		
> </xcb>
> 
> --------------050902010000030805040408
> Content-Type: text/plain; charset="us-ascii"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline
> 
> _______________________________________________
> xcb mailing list
> xcb@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb
> 
> --------------050902010000030805040408--


More information about the xcb mailing list