[Xcb-commit] src

Josh Triplett josh at kemper.freedesktop.org
Sun Oct 15 12:39:21 PDT 2006


 src/Makefile.am |   47 +++++++++++++++++++++++------------------------
 src/xvmc.xml    |    0 
 2 files changed, 23 insertions(+), 24 deletions(-)

New commits:
diff-tree b3423e67845cb6f2b858fb3f22295a5ef79821fb (from 39a58929682650c0761e3ccfe2f10978ec5f0b74)
Author: Josh Triplett <josh at freedesktop.org>
Date:   Sun Oct 15 12:39:04 2006 -0700

    Move extension descriptions out of extensions/ subdirectory
    
    Now that the extensions do not get installed to an extensions/ subdirectory,
    move them out of the extensions/ subdirectory in the source as well.

diff --git a/src/Makefile.am b/src/Makefile.am
index 20225fa..dd0d329 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,31 +1,30 @@
 xcbinclude_HEADERS = \
 	xcb.xsd \
 	xproto.xml \
-	extensions/bigreq.xml \
-	extensions/composite.xml \
-	extensions/damage.xml \
-	extensions/dpms.xml \
-	extensions/glx.xml \
-	extensions/randr.xml \
-	extensions/record.xml \
-	extensions/render.xml \
-	extensions/res.xml \
-	extensions/screensaver.xml \
-	extensions/shape.xml \
-	extensions/shm.xml \
-	extensions/sync.xml \
-	extensions/xc_misc.xml \
-	extensions/xevie.xml \
-	extensions/xinerama.xml \
-	extensions/xf86dri.xml \
-	extensions/xfixes.xml \
-	extensions/xprint.xml \
-	extensions/xtest.xml \
-	extensions/xv.xml	 \
-	extensions/xvmc.xml
+	bigreq.xml \
+	composite.xml \
+	damage.xml \
+	dpms.xml \
+	glx.xml \
+	randr.xml \
+	record.xml \
+	render.xml \
+	res.xml \
+	screensaver.xml \
+	shape.xml \
+	shm.xml \
+	sync.xml \
+	xc_misc.xml \
+	xevie.xml \
+	xinerama.xml \
+	xf86dri.xml \
+	xfixes.xml \
+	xprint.xml \
+	xtest.xml \
+	xv.xml \
+	xvmc.xml
 
 if HAVE_XMLLINT
 check-local:
-	$(XMLLINT) --noout --schema $(srcdir)/xcb.xsd \
-	           $(srcdir)/*.xml $(srcdir)/extensions/*.xml
+	$(XMLLINT) --noout --schema $(srcdir)/xcb.xsd $(srcdir)/*.xml
 endif
diff --git a/src/bigreq.xml b/src/bigreq.xml
new file mode 100644
index 0000000..9e99d2e
--- /dev/null
+++ b/src/bigreq.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<xcb header="bigreq" extension-xname="BIG-REQUESTS"
+                     extension-name="BigRequests">
+  <request name="Enable" opcode="0">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="maximum_request_length" />
+    </reply>
+  </request>
+</xcb>
diff --git a/src/composite.xml b/src/composite.xml
new file mode 100644
index 0000000..48c90fd
--- /dev/null
+++ b/src/composite.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!-- This file describes version 0.3 of COMPOSITE. -->
+<xcb header="composite" extension-xname="Composite" extension-name="Composite">
+  <import>xproto</import>
+  <import>xfixes</import>
+
+  <enum name="Redirect">
+    <item name="Automatic" />
+    <item name="Manual" />
+  </enum>
+
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD32" name="client_major_version" />
+    <field type="CARD32" name="client_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="RedirectWindow" opcode="1">
+    <field type="WINDOW" name="window" />
+    <field type="CARD8" name="update" />
+    <pad bytes="3" />
+  </request>
+
+  <request name="RedirectSubwindows" opcode="2">
+    <field type="WINDOW" name="window" />
+    <field type="CARD8" name="update" />
+    <pad bytes="3" />
+  </request>
+
+  <request name="UnredirectWindow" opcode="3">
+    <field type="WINDOW" name="window" />
+    <field type="CARD8" name="update" />
+    <pad bytes="3" />
+  </request>
+
+  <request name="UnredirectSubwindows" opcode="4">
+    <field type="WINDOW" name="window" />
+    <field type="CARD8" name="update" />
+    <pad bytes="3" />
+  </request>
+
+  <request name="CreateRegionFromBorderClip" opcode="5">
+    <field type="REGION" name="region" />
+    <field type="WINDOW" name="window" />
+  </request>
+
+  <request name="NameWindowPixmap" opcode="6">
+    <field type="WINDOW" name="window" />
+    <field type="PIXMAP" name="pixmap" />
+  </request>
+  
+  <!-- new in version 0.3 -->
+  
+  <request name="GetOverlayWindow" opcode="7">
+    <field type="WINDOW" name="window" />
+    <reply>
+      <pad bytes="1" />
+      <field type="WINDOW" name="overlay_win" />
+      <pad bytes="20" />
+    </reply>
+  </request>
+
+  <request name="ReleaseOverlayWindow" opcode="8">
+    <field type="WINDOW" name="window" />
+  </request>
+</xcb>
diff --git a/src/damage.xml b/src/damage.xml
new file mode 100644
index 0000000..474fd60
--- /dev/null
+++ b/src/damage.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!-- This file describes version 1 of DAMAGE. -->
+<xcb header="damage" extension-xname="DAMAGE" extension-name="Damage">
+  <import>xproto</import>
+  <import>xfixes</import>
+
+  <xidtype name="DAMAGE" />
+
+  <enum name="ReportLevel">
+    <item name="RawRectangles" />
+    <item name="DeltaRectangles" />
+    <item name="BoundingBox" />
+    <item name="NonEmpty" />
+  </enum>
+
+  <error name="BadDamage" number="0" />
+
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD32" name="client_major_version" />
+    <field type="CARD32" name="client_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="Create" opcode="1">
+    <field type="DAMAGE"   name="damage" />
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD8"    name="level" /> <!-- ReportLevel -->
+    <pad bytes="3" />
+  </request>
+
+  <request name="Destroy" opcode="2">
+    <field type="DAMAGE" name="damage" />
+  </request>
+
+  <request name="Subtract" opcode="3">
+    <field type="DAMAGE" name="damage" />
+    <field type="REGION" name="repair" />
+    <field type="REGION" name="parts" />
+  </request>
+
+  <event name="Notify" number="0">
+    <field type="CARD8"     name="level" /> <!-- ReportLevel -->
+    <field type="DRAWABLE"  name="drawable" />
+    <field type="DAMAGE"    name="damage" />
+    <field type="TIMESTAMP" name="timestamp" />
+    <field type="RECTANGLE" name="area" />
+    <field type="RECTANGLE" name="geometry" />
+  </event>
+</xcb>
diff --git a/src/dpms.xml b/src/dpms.xml
new file mode 100644
index 0000000..27ba98a
--- /dev/null
+++ b/src/dpms.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<xcb header="dpms" extension-xname="DPMS" extension-name="DPMS">
+  <request name="GetVersion" opcode="0">
+    <field type="CARD16" name="client_major_version" />
+    <field type="CARD16" name="client_minor_version" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="server_major_version" />
+      <field type="CARD16" name="server_minor_version" />
+    </reply>
+  </request>
+
+  <request name="Capable" opcode="1">
+    <reply>
+      <pad bytes="1" />
+      <field type="BOOL" name="capable" />
+    </reply>
+  </request>
+
+  <request name="GetTimeouts" opcode="2">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="standby_timeout" />
+      <field type="CARD16" name="suspend_timeout" />
+      <field type="CARD16" name="off_timeout" />
+    </reply>
+  </request>
+
+  <request name="SetTimeouts" opcode="3">
+    <field type="CARD16" name="standby_timeout" />
+    <field type="CARD16" name="suspend_timeout" />
+    <field type="CARD16" name="off_timeout" />
+  </request>
+
+  <request name="Enable" opcode="4" />
+
+  <request name="Disable" opcode="5" />
+
+  <request name="ForceLevel" opcode="6">
+    <field type="CARD16" name="power_level" />
+  </request>
+
+  <request name="Info" opcode="7">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="power_level" />
+      <field type="BOOL" name="state" />
+    </reply>
+  </request>
+</xcb>
diff --git a/src/extensions/bigreq.xml b/src/extensions/bigreq.xml
deleted file mode 100644
index 9e99d2e..0000000
--- a/src/extensions/bigreq.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<xcb header="bigreq" extension-xname="BIG-REQUESTS"
-                     extension-name="BigRequests">
-  <request name="Enable" opcode="0">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="maximum_request_length" />
-    </reply>
-  </request>
-</xcb>
diff --git a/src/extensions/composite.xml b/src/extensions/composite.xml
deleted file mode 100644
index 48c90fd..0000000
--- a/src/extensions/composite.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!-- This file describes version 0.3 of COMPOSITE. -->
-<xcb header="composite" extension-xname="Composite" extension-name="Composite">
-  <import>xproto</import>
-  <import>xfixes</import>
-
-  <enum name="Redirect">
-    <item name="Automatic" />
-    <item name="Manual" />
-  </enum>
-
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD32" name="client_major_version" />
-    <field type="CARD32" name="client_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="RedirectWindow" opcode="1">
-    <field type="WINDOW" name="window" />
-    <field type="CARD8" name="update" />
-    <pad bytes="3" />
-  </request>
-
-  <request name="RedirectSubwindows" opcode="2">
-    <field type="WINDOW" name="window" />
-    <field type="CARD8" name="update" />
-    <pad bytes="3" />
-  </request>
-
-  <request name="UnredirectWindow" opcode="3">
-    <field type="WINDOW" name="window" />
-    <field type="CARD8" name="update" />
-    <pad bytes="3" />
-  </request>
-
-  <request name="UnredirectSubwindows" opcode="4">
-    <field type="WINDOW" name="window" />
-    <field type="CARD8" name="update" />
-    <pad bytes="3" />
-  </request>
-
-  <request name="CreateRegionFromBorderClip" opcode="5">
-    <field type="REGION" name="region" />
-    <field type="WINDOW" name="window" />
-  </request>
-
-  <request name="NameWindowPixmap" opcode="6">
-    <field type="WINDOW" name="window" />
-    <field type="PIXMAP" name="pixmap" />
-  </request>
-  
-  <!-- new in version 0.3 -->
-  
-  <request name="GetOverlayWindow" opcode="7">
-    <field type="WINDOW" name="window" />
-    <reply>
-      <pad bytes="1" />
-      <field type="WINDOW" name="overlay_win" />
-      <pad bytes="20" />
-    </reply>
-  </request>
-
-  <request name="ReleaseOverlayWindow" opcode="8">
-    <field type="WINDOW" name="window" />
-  </request>
-</xcb>
diff --git a/src/extensions/damage.xml b/src/extensions/damage.xml
deleted file mode 100644
index 474fd60..0000000
--- a/src/extensions/damage.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!-- This file describes version 1 of DAMAGE. -->
-<xcb header="damage" extension-xname="DAMAGE" extension-name="Damage">
-  <import>xproto</import>
-  <import>xfixes</import>
-
-  <xidtype name="DAMAGE" />
-
-  <enum name="ReportLevel">
-    <item name="RawRectangles" />
-    <item name="DeltaRectangles" />
-    <item name="BoundingBox" />
-    <item name="NonEmpty" />
-  </enum>
-
-  <error name="BadDamage" number="0" />
-
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD32" name="client_major_version" />
-    <field type="CARD32" name="client_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="Create" opcode="1">
-    <field type="DAMAGE"   name="damage" />
-    <field type="DRAWABLE" name="drawable" />
-    <field type="CARD8"    name="level" /> <!-- ReportLevel -->
-    <pad bytes="3" />
-  </request>
-
-  <request name="Destroy" opcode="2">
-    <field type="DAMAGE" name="damage" />
-  </request>
-
-  <request name="Subtract" opcode="3">
-    <field type="DAMAGE" name="damage" />
-    <field type="REGION" name="repair" />
-    <field type="REGION" name="parts" />
-  </request>
-
-  <event name="Notify" number="0">
-    <field type="CARD8"     name="level" /> <!-- ReportLevel -->
-    <field type="DRAWABLE"  name="drawable" />
-    <field type="DAMAGE"    name="damage" />
-    <field type="TIMESTAMP" name="timestamp" />
-    <field type="RECTANGLE" name="area" />
-    <field type="RECTANGLE" name="geometry" />
-  </event>
-</xcb>
diff --git a/src/extensions/dpms.xml b/src/extensions/dpms.xml
deleted file mode 100644
index 27ba98a..0000000
--- a/src/extensions/dpms.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<xcb header="dpms" extension-xname="DPMS" extension-name="DPMS">
-  <request name="GetVersion" opcode="0">
-    <field type="CARD16" name="client_major_version" />
-    <field type="CARD16" name="client_minor_version" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="server_major_version" />
-      <field type="CARD16" name="server_minor_version" />
-    </reply>
-  </request>
-
-  <request name="Capable" opcode="1">
-    <reply>
-      <pad bytes="1" />
-      <field type="BOOL" name="capable" />
-    </reply>
-  </request>
-
-  <request name="GetTimeouts" opcode="2">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="standby_timeout" />
-      <field type="CARD16" name="suspend_timeout" />
-      <field type="CARD16" name="off_timeout" />
-    </reply>
-  </request>
-
-  <request name="SetTimeouts" opcode="3">
-    <field type="CARD16" name="standby_timeout" />
-    <field type="CARD16" name="suspend_timeout" />
-    <field type="CARD16" name="off_timeout" />
-  </request>
-
-  <request name="Enable" opcode="4" />
-
-  <request name="Disable" opcode="5" />
-
-  <request name="ForceLevel" opcode="6">
-    <field type="CARD16" name="power_level" />
-  </request>
-
-  <request name="Info" opcode="7">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="power_level" />
-      <field type="BOOL" name="state" />
-    </reply>
-  </request>
-</xcb>
diff --git a/src/extensions/glx.xml b/src/extensions/glx.xml
deleted file mode 100644
index 5f8b5e6..0000000
--- a/src/extensions/glx.xml
+++ /dev/null
@@ -1,1466 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<!--
-Note that on X.org servers before 6.9 (and probably others as well) the length
-field in the reply is computed incorrectly for GetFBConfigs and
-VendorPrivateWithReply vendor_code 0x10004 (GetFBConfigsSGIX). For these
-requests the reply structure begins:
-	<pad bytes="1" />
-	<field type="CARD32" name="numVisuals" />
-	<field type="CARD32" name="numProps" />
-The correct value for the length field is
-	numVisuals * numProps * 2
-but on broken servers the "* 2" was missing. A workaround that is correct for
-all implementations is to rewrite the length field on receipt on the client
-side, using the expression above.
-
-The patch that fixed this server bug in X.org CVS is here:
-	http://cvs.freedesktop.org/xorg/xserver/xorg/GL/glx/glxcmds.c?r1=1.6&r2=1.7
--->
-
-<xcb header="glx" extension-xname="GLX" extension-name="Glx">
-	<!-- target support: 1.3 -->
-
-	<import>xproto</import>
-
-	<xidtype name="PIXMAP" />
-	<xidtype name="CONTEXT" />
-	<xidtype name="PBUFFER" />
-	<xidtype name="WINDOW" />
-        <xidtype name="FBCONFIG" />
-
-        <xidunion name="DRAWABLE">
-            <type>xproto:WINDOW</type>
-            <type>PBUFFER</type>
-            <type>glx:PIXMAP</type>
-            <type>glx:WINDOW</type>
-        </xidunion>
-
-	<typedef oldname="float" newname="FLOAT32" />
-	<typedef oldname="double" newname="FLOAT64" />
-        <typedef oldname="CARD32" newname="BOOL32" />
-        <typedef oldname="CARD32" newname="CONTEXT_TAG" />
-	    
-	<!-- Errors -->
-	<error name="Generic" number="-1"> <!-- FIXME: fake number -->
-		<field type="CARD32" name="bad_value" />
-		<field type="CARD16" name="minor_opcode" />
-		<field type="CARD8" name="major_opcode" />
-		<pad bytes="21" />
-	</error>
-
-	<errorcopy name="BadContext" number="0" ref="Generic" />
-	<errorcopy name="BadContextState" number="1" ref="Generic" />
-	<errorcopy name="BadDrawable" number="2" ref="Generic" />
-	<errorcopy name="BadPixmap" number="3" ref="Generic" />
-	<errorcopy name="BadContextTag" number="4" ref="Generic" />
-	<errorcopy name="BadCurrentWindow" number="5" ref="Generic" />
-	<errorcopy name="BadRenderRequest" number="6" ref="Generic" />
-	<errorcopy name="BadLargeRequest" number="7" ref="Generic" />
-	<errorcopy name="UnsupportedPrivateRequest" number="8" ref="Generic" />
-	<errorcopy name="BadFBConfig" number="9" ref="Generic" />
-	<errorcopy name="BadPbuffer" number="10" ref="Generic" />
-	<errorcopy name="BadCurrentDrawable" number="11" ref="Generic" />
-	<errorcopy name="BadWindow" number="12" ref="Generic" />
-
-	<!-- Events -->
-	<event name="PbufferClobber" number="0">
-		<field type="CARD16" name="event_type" />
-		<field type="CARD16" name="draw_type" />
-		<field type="glx:DRAWABLE" name="drawable" />
-		<field type="CARD32" name="b_mask" />
-		<field type="CARD16" name="aux_buffer" />
-		<field type="CARD16" name="x" />
-		<field type="CARD16" name="y" />
-		<field type="CARD16" name="width" />
-		<field type="CARD16" name="height" />
-		<field type="CARD16" name="count" />
-		<pad bytes="4" />
-	</event>
-
-	<!-- enums for PbufferClobber event/draw type -->
-	<enum name="PBCET">
-		<item name="Damaged">
-			<value>0x8017</value>
-		</item>
-		<item name="Saved">
-			<value>0x8018</value>
-		</item>
-	</enum>
-
-	<enum name="PBCDT">
-		<item name="Window">
-			<value>0x8019</value>
-		</item>
-		<item name="Pbuffer">
-			<value>0x801A</value>
-		</item>
-	</enum>
-
-	<!-- Requests -->
-	<request name="Render" opcode="1" combine-adjacent="true">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<list type="BYTE" name="data" />
-	</request>
-
-	<request name="RenderLarge" opcode="2">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD16" name="request_num" />
-		<field type="CARD16" name="request_total" />
-		<field type="CARD32" name="data_len" />
-		<list type="BYTE" name="data">
-		    <fieldref>data_len</fieldref>
-		</list>
-	</request>
-
-	<request name="CreateContext" opcode="3">
-		<field type="glx:CONTEXT" name="context" />
-		<field type="VISUALID" name="visual" />
-		<field type="CARD32" name="screen" />
-		<field type="glx:CONTEXT" name="share_list" />
-		<field type="BOOL" name="is_direct" />
-		<pad bytes="3" />
-	</request>
-
-	<request name="DestroyContext" opcode="4">
-		<field type="glx:CONTEXT" name="context" />
-	</request>
-
-	<request name="MakeCurrent" opcode="5">
-		<field type="glx:DRAWABLE" name="drawable" />
-		<field type="glx:CONTEXT" name="context" />
-		<field type="CONTEXT_TAG" name="old_context_tag" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CONTEXT_TAG" name="context_tag" />
-			<pad bytes="20" />
-		</reply>
-	</request>
-
-	<request name="IsDirect" opcode="6">
-		<field type="glx:CONTEXT" name="context" />
-		<reply>
-			<pad bytes="1" />
-			<field type="BOOL" name="is_direct" />
-			<pad bytes="23" />
-		</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="CONTEXT_TAG" name="context_tag" />
-	</request>
-
-	<request name="WaitX" opcode="9">
-		<field type="CONTEXT_TAG" name="context_tag" />
-	</request>
-
-	<request name="CopyContext" opcode="10">
-		<field type="glx:CONTEXT" name="src" />
-		<field type="glx:CONTEXT" name="dest" />
-		<field type="CARD32" name="mask" />
-		<field type="CONTEXT_TAG" name="src_context_tag" />
-	</request>
-
-	<!-- Enum for CopyContext: mask -->
-	<enum name="GC">
-		<item name="GL_CURRENT_BIT"><value>0x00000001</value></item>
-		<item name="GL_POINT_BIT"><value>0x00000002</value></item>
-		<item name="GL_LINE_BIT"><value>0x00000004</value></item>
-		<item name="GL_POLYGON_BIT"><value>0x00000008</value></item>
-		<item name="GL_POLYGON_STIPPLE_BIT"><value>0x00000010</value></item>
-		<item name="GL_PIXEL_MODE_BIT"><value>0x00000020</value></item>
-		<item name="GL_LIGHTING_BIT"><value>0x00000040</value></item>
-		<item name="GL_FOG_BIT"><value>0x00000080</value></item>
-		<item name="GL_DEPTH_BUFFER_BIT"><value>0x00000100</value></item>
-		<item name="GL_ACCUM_BUFFER_BIT"><value>0x00000200</value></item>
-		<item name="GL_STENCIL_BUFFER_BIT"><value>0x00000400</value></item>
-		<item name="GL_VIEWPORT_BIT"><value>0x00000800</value></item>
-		<item name="GL_TRANSFORM_BIT"><value>0x00001000</value></item>
-		<item name="GL_ENABLE_BIT"><value>0x00002000</value></item>
-		<item name="GL_COLOR_BUFFER_BIT"><value>0x00004000</value></item>
-		<item name="GL_HINT_BIT"><value>0x00008000</value></item>
-		<item name="GL_EVAL_BIT"><value>0x00010000</value></item>
-		<item name="GL_LIST_BIT"><value>0x00020000</value></item>
-		<item name="GL_TEXTURE_BIT"><value>0x00040000</value></item>
-		<item name="GL_SCISSOR_BIT"><value>0x00080000</value></item>
-		<item name="GL_ALL_ATTRIB_BITS"><value>0x000ffffff</value></item>
-	</enum>
-
-	<request name="SwapBuffers" opcode="11">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="glx:DRAWABLE" name="drawable" />
-	</request>
-
-	<request name="UseXFont" opcode="12">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="FONT" name="font" />
-		<field type="CARD32" name="first" />
-		<field type="CARD32" name="count" />
-		<field type="CARD32" name="list_base" />
-	</request>
-
-	<request name="CreateGLXPixmap" opcode="13">
-		<field type="CARD32" name="screen" />
-		<field type="VISUALID" name="visual" />
-		<field type="xproto:PIXMAP" name="pixmap" />
-		<field type="glx:PIXMAP" name="glx_pixmap" />
-	</request>
-
-        
-	<request name="GetVisualConfigs" opcode="14">
-		<field type="CARD32" name="screen" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="num_visuals" />
-			<field type="CARD32" name="num_properties" />
-                        <pad bytes="16" />
-                        <list type="CARD32" name="property_list" />
-		</reply>
-	</request>
-
-	<request name="DestroyGLXPixmap" opcode="15">
-		<field type="glx:PIXMAP" name="glx_pixmap" />
-	</request>
-
-	<!--
-	Context tag is not in the proto, should be part of the list of bytes
-	but every VendorPrivate and VendorPrivateWithReply request uses them
-	so it is safe to put them in.  That's how Mesa does it.
-	-->
-	<request name="VendorPrivate" opcode="16">
-		<field type="CARD32" name="vendor_code" />
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<list type="BYTE" name="data" />
-	</request>
-
-	<request name="VendorPrivateWithReply" opcode="17">
-		<field type="CARD32" name="vendor_code" />
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<list type="BYTE" name="data" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="retval" />
-			<list type="BYTE" name="data1">
-				<value>24</value>
-			</list>
-			<list type="BYTE" name="data2" />
-		</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 bytes="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="str_len" />
-			<pad bytes="16" />
-			<list type="CARD8" name="string">
-				<fieldref>str_len</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="ClientInfo" opcode="20">
-		<field type="CARD32" name="major_version" />
-		<field type="CARD32" name="minor_version" />
-		<field type="CARD32" name="str_len" />
-		<list type="CARD8" name="string">
-			<fieldref>str_len</fieldref>
-		</list>
-	</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="num_FB_configs" />
-			<field type="CARD32" name="num_properties" />
-                        <pad bytes="16" />
-                        <!--
-			<valueparam value-mask-type="CARD32"
-				value-mask-name="value_mask"
-                                value-list-name="value_list" />
-                            -->
-                        <list type="CARD32" name="property_list" />
-		</reply>
-	</request>
-
-	<request name="CreatePixmap" opcode="22">
-		<field type="CARD32" name="screen" />
-		<field type="CARD32" name="fbconfig" />
-		<field type="xproto:PIXMAP" name="pixmap" />
-		<field type="glx:PIXMAP" name="glx_pixmap" />
-		<field type="CARD32" name="num_attribs" />  
-	</request>
-
-	<request name="DestroyPixmap" opcode="23">
-		<field type="glx:PIXMAP" name="glx_pixmap" />
-	</request>
-
-	<request name="CreateNewContext" opcode="24">
-		<field type="glx:CONTEXT" name="context" />
-		<field type="CARD32" name="fbconfig" />
-		<field type="SCREEN" name="screen" />
-		<field type="CARD32" name="render_type" />
-		<field type="CARD32" name="share_list" />
-		<field type="BOOL" name="is_direct" />
-		<field type="CARD8" name="reserved1" />
-		<field type="CARD16" name="reserved2" />
-	</request>
-
-	<request name="QueryContext" opcode="25">
-		<field type="glx:CONTEXT" name="context" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="num_attributes"/>
-			<pad bytes="20" />
-			<valueparam value-mask-type="CARD32"
-				value-mask-name="value_mask"
-				value-list-name="value_list" />
-		</reply>
-	</request>
-
-	<request name="MakeContextCurrent" opcode="26">
-		<field type="CONTEXT_TAG" name="old_context_tag" />
-		<field type="glx:DRAWABLE" name="drawable" />
-		<field type="glx:DRAWABLE" name="read_drawable" />
-		<field type="glx:CONTEXT" name="context" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CONTEXT_TAG" name="context_tag" />
-			<pad bytes="20" />
-		</reply>
-	</request>
-
-	<request name="CreatePbuffer" opcode="27">
-		<field type="SCREEN" name="screen" />
-		<field type="FBCONFIG" name="fbconfig" />
-		<field type="PBUFFER" name="pbuffer" />
-		<field type="CARD32" name="num_attribs" />
-		<valueparam value-mask-type="CARD32"
-			value-mask-name="value_mask"
-			value-list-name="value_list" />
-	</request>
-
-	<request name="DestroyPbuffer" opcode="28">
-		<field type="PBUFFER" name="pbuffer" />
-	</request>
-
-	<request name="GetDrawableAttributes" opcode="29">
-		<field type="glx:DRAWABLE" name="drawable" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="num_attribs" />
-			<pad bytes="20" />
-			<valueparam value-mask-type="CARD32"
-				value-mask-name="value_mask"
-				value-list-name="value_list" />
-		</reply>
-	</request>
-
-	<request name="ChangeDrawableAttributes" opcode="30">
-		<field type="glx:DRAWABLE" name="drawable" />
-		<field type="CARD32" name="num_attribs" />
-		<valueparam value-mask-type="CARD32"
-			value-mask-name="value_mask"
-			value-list-name="value_list" />
-	</request>
-
-	<request name="CreateWindow" opcode="31">
-		<field type="SCREEN" name="screen" />
-		<field type="FBCONFIG" name="fbconfig" />
-		<field type="xproto:WINDOW" name="window" />
-		<field type="glx:WINDOW" name="glx_window" />
-		<field type="CARD32" name="num_attribs" />
-		<valueparam value-mask-type="CARD32"
-			value-mask-name="value_mask"
-			value-list-name="value_list" />
-	</request>
-
-	<request name="DeleteWindow" opcode="32">
-		<field type="glx:WINDOW" name="glxwindow" />
-	</request>
-
-	<!-- Requests for GL Non-rendering Commands (single ops) -->
-
-	<request name="NewList" opcode="101">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="list" />
-		<field type="CARD32" name="mode" />
-	</request>
-
-	<request name="EndList" opcode="102">
-		<field type="CONTEXT_TAG" name="context_tag" />
-	</request>
-
-	<request name="DeleteLists" opcode="103">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="list" />
-		<field type="INT32" name="range" />
-	</request>
-
-	<request name="GenLists" opcode="104">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="range" />
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="ret_val" />
-		</reply>
-	</request>
-
-	<request name="FeedbackBuffer" opcode="105">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="size" />
-		<field type="INT32" name="type" />
-	</request>
-
-	<request name="SelectBuffer" opcode="106">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="size" />
-		<!-- the reply is actually returned in the data
-		of the next RenderMode request -->
-	</request>
-
-
-	<request name="RenderMode" opcode="107">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="mode" />
-		<!--
-		This reply is only if RM was previously feedback/selection.
-		If it was in feedback mode then data is FLOAT32.
-		If previously in render mode there is no reply.
-		-->
-		<reply>
-			<pad bytes="1" />
-			<field type="CARD32" name="ret_val" />
-			<field type="CARD32" name="n" />
-			<field type="CARD32" name="new_mode" />
-			<pad bytes="12" />
-			<list type="CARD32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<enum name="RM">
-		<item name="GL_RENDER"><value>0x1C00</value></item>
-		<item name="GL_FEEDBACK"><value>0x1C01</value></item>
-		<item name="GL_SELECT"><value>0x1C02</value></item>
-	</enum>
-
-	<request name="Finish" opcode="108">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<reply>
-			<pad bytes="1" />
-		</reply>
-	</request>
-
-	<request name="PixelStoref" opcode="109">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="pname" />
-		<field type="FLOAT32" name="datum" />
-	</request>
-
-	<request name="PixelStorei" opcode="110">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="pname" />
-		<field type="INT32" name="datum" />
-	</request>
-
-	<request name="ReadPixels" opcode="111">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="x" />
-		<field type="INT32" name="y" />
-		<field type="INT32" name="width" />
-		<field type="INT32" name="height" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<field type="BOOL" name="lsb_first" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="24" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-		
-	<!-- FIXME:
-	All the Get* functions can return different stuff for replies.
-	Hopefully xcb will support multiple reply structures at some point
-	but for now... grrrr
-	Starts on page 58/180
-	-->
-	<request name="GetBooleanv" opcode="112">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="BOOL" name="datum" />
-			<pad bytes="15" />
-			<list type="BOOL" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetClipPlane" opcode="113">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="plane" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="24" />
-			<list type="FLOAT64" name="data" />
-		</reply>
-	</request>
-
-	<request name="GetDoublev" opcode="114">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT64" name="datum" />
-			<pad bytes="8" />
-			<list type="FLOAT64" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetError" opcode="115">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<reply>
-			<pad bytes="1" />
-			<field type="INT32" name="error" />
-		</reply>
-	</request>
-
-	<request name="GetFloatv" opcode="116">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetIntegerv" opcode="117">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetLightfv" opcode="118">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="light" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetLightiv" opcode="119">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="light" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMapdv" opcode="120">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="query" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT64" name="datum" />
-			<pad bytes="8" />
-			<list type="FLOAT64" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMapfv" opcode="121">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="query" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMapiv" opcode="122">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="query" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMaterialfv" opcode="123">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="face" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMaterialiv" opcode="124">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="face" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetPixelMapfv" opcode="125">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="map" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetPixelMapuiv" opcode="126">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="map" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="CARD32" name="datum" />
-			<pad bytes="12" />
-			<list type="CARD32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetPixelMapusv" opcode="127">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="map" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="CARD16" name="datum" />
-			<pad bytes="16" />
-			<list type="CARD16" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetPolygonStipple" opcode="128">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="BOOL" name="lsb_first" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="24" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-
-
-	<request name="GetString" opcode="129">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="name" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<pad bytes="16" />
-			<list type="CARD8" name="string">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexEnvfv" opcode="130">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexEnviv" opcode="131">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexGendv" opcode="132">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="coord" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT64" name="datum" />
-			<pad bytes="8" />
-			<list type="FLOAT64" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexGenfv" opcode="133">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="coord" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexGeniv" opcode="134">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="coord" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexImage" opcode="135">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="INT32" name="level" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="width" />
-			<field type="INT32" name="height" />
-			<field type="INT32" name="depth" />
-			<pad bytes="4" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-	    
-
-	<request name="GetTexParameterfv" opcode="136">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexParameteriv" opcode="137">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexLevelParameterfv" opcode="138">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="INT32" name="level" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetTexLevelParameteriv" opcode="139">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="INT32" name="level" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="IsList" opcode="141" >
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="list" />
-		<reply>
-			<pad bytes="1" />
-			<field type="BOOL32" name="ret_val" />
-		</reply>
-	</request>
-
-	<request name="Flush" opcode="142">
-		<field type="CONTEXT_TAG" name="context_tag" />
-	</request>
-
-	<request name="AreTexturesResident" opcode="143">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="n" />
-		<list type="CARD32" name="textures">
-		    <fieldref>n</fieldref>
-		</list>
-		<reply>
-			<pad bytes="1" />
-			<field type="BOOL32" name="ret_val" />
-			<pad bytes="20" />
-			<list type="BOOL" name="data" />
-		</reply>
-	</request>
-
-	<request name="DeleteTextures" opcode="144">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="n" />
-		<list type="CARD32" name="textures">
-			<fieldref>n</fieldref>
-		</list>
-	</request>
-
-	<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" />
-		</reply>
-	</request>
-
-	<request name="IsTexture" opcode="146">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="texture" />
-		<reply>
-			<pad bytes="1" />
-			<field type="BOOL32" name="ret_val" />
-		</reply>
-	</request>
-
-	<request name="GetColorTable" opcode="147">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="width" />
-			<pad bytes="12" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-	
-	<request name="GetColorTableParameterfv" opcode="148">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetColorTableParameteriv" opcode="149">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetConvolutionFilter" opcode="150">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="width" />
-			<field type="INT32" name="height" />
-			<pad bytes="8" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-
-
-	<request name="GetConvolutionParameterfv" opcode="151">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetConvolutionParameteriv" opcode="152">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetSeparableFilter" opcode="153">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="row_w" />
-			<field type="INT32" name="col_h" />
-			<pad bytes="8" />
-			<list type="BYTE" name="rows_and_cols" />
-		</reply>
-	</request>
-
-	<request name="GetHistogram" opcode="154">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<field type="BOOL" name="reset" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="width" />
-			<pad bytes="12" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-
-
-	<request name="GetHistogramParameterfv" opcode="155">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetHistogramParameteriv" opcode="156">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMinmax" opcode="157">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="format" />
-		<field type="CARD32" name="type" />
-		<field type="BOOL" name="swap_bytes" />
-		<field type="BOOL" name="reset" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="24" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-
-	<request name="GetMinmaxParameterfv" opcode="158">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="FLOAT32" name="datum" />
-			<pad bytes="12" />
-			<list type="FLOAT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<request name="GetMinmaxParameteriv" opcode="159">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-
-	<!--
-	GLX Extensions
-	
-	* XXX: So far only define non-rendering commands.
-	* Only those extensions that affect the GLX wire protocol are listed.
-	-->
-
-	<!--
-	GL_ARB_texture_compression
-	http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt
-	-->
-	<request name="GetCompressedTexImageARB" opcode="160">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="INT32" name="level" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="8" />
-			<field type="INT32" name="size" />
-			<pad bytes="12" />
-			<list type="BYTE" name="data" />
-		</reply>
-	</request>
-
-	
-	<!--
-	GL_ARB_occlusion_query
-	http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
-	-->
-
-	<request name="DeleteQueriesARB" opcode="161">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="n" />
-		<list type="CARD32" name="ids">
-			<fieldref>n</fieldref>
-		</list>
-	</request>
-
-	<request name="GenQueriesARB" opcode="162">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="INT32" name="n" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="24" />
-			<list type="CARD32" name="data" />
-		</reply>
-	</request>
-	
-	<request name="IsQueryARB" opcode="163">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="id" />
-		<reply>
-			<pad bytes="1" />
-			<field type="BOOL32" name="ret_val" />
-		</reply>
-	</request>
-	
-	<request name="GetQueryivARB" opcode="164">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="target" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-	
-	<request name="GetQueryObjectivARB" opcode="165">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="id" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="INT32" name="datum" />
-			<pad bytes="12" />
-			<list type="INT32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-	
-	<request name="GetQueryObjectuivARB" opcode="166">
-		<field type="CONTEXT_TAG" name="context_tag" />
-		<field type="CARD32" name="id" />
-		<field type="CARD32" name="pname" />
-		<reply>
-			<pad bytes="1" />
-			<pad bytes="4" />
-			<field type="CARD32" name="n" />
-			<field type="CARD32" name="datum" />
-			<pad bytes="12" />
-			<list type="CARD32" name="data">
-				<fieldref>n</fieldref>
-			</list>
-		</reply>
-	</request>
-	
-	<!--
-	GL_ARB_vertex_program
-	http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_program.txt
-	XXX: Need to write up vops
-	--> 
-
-	<!--
-	GL_ARB_fragment_program
-	http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt
-	XXX: Need to write up vops
-	-->
-	
-	<!--
-	GL_SGIS_texture_filter4
-	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/texture_filter4.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_EXT_histogram
-	http://oss.sgi.com/projects/ogl-sample/registry/EXT/histogram.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_EXT_convolution
-	http://oss.sgi.com/projects/ogl-sample/registry/EXT/convolution.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGI_color_table
-	http://oss.sgi.com/projects/ogl-sample/registry/SGI/color_table.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_EXT_texture_object
-	http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_object.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGIS_detail_texture
-	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/detail_texture.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGIS_sharpen_texture
-	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/sharpen_texture.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGI_make_current_read
-	http://oss.sgi.com/projects/ogl-sample/registry/SGI/make_current_read.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_EXT_import_context
-	http://oss.sgi.com/projects/ogl-sample/registry/EXT/import_context.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGIX_fbconfig
-	http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_SGIX_pbuffer
-	http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_EXT_pixel_transform
-	http://oss.sgi.com/projects/ogl-sample/registry/EXT/pixel_transform.txt
-	XXX: Need to write up vops
-	-->
-	
-	<!--
-	GL_NV_register_combiners
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_fence
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/fence.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_register_combiners2
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners2.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_vertex_program
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_vertex_program
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_occlusion_query
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_NV_fragment_program
-	http://oss.sgi.com/projects/ogl-sample/registry/NV/fragment_program.txt
-	XXX: Need to write up vops
-	-->
-
-	<!--
-	GL_OES_single_precision
-	http://oss.sgi.com/projects/ogl-sample/registry/OES/single_precision.txt
-	XXX: Need to write up vops
-	-->
-	
-</xcb>
diff --git a/src/extensions/randr.xml b/src/extensions/randr.xml
deleted file mode 100644
index 5c0ccdf..0000000
--- a/src/extensions/randr.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="randr" extension-xname="RANDR" extension-name="RandR">
-	<!-- Implements version 1.1 of RANDR -->	
-
-	<import>xproto</import>
-
-	<enum name="Rotation">
-		<item name="Rotate_0"><value>1</value></item>
-		<item name="Rotate_90"><value>2</value></item>
-		<item name="Rotate_180"><value>4</value></item>
-		<item name="Rotate_270"><value>8</value></item>
-		<item name="Reflect_X"><value>16</value></item>
-		<item name="Reflect_Y"><value>32</value></item>
-	</enum>
-
-	<struct name="ScreenSize">
-		<field type="INT16" name="width" />
-		<field type="INT16" name="height" />
-		<field type="INT16" name="mwidth" />
-		<field type="INT16" name="mheight" />
-	</struct>
-	
-	<struct name="RefreshRates">
-		<field type="CARD16" name="nRates" />
-		<list type="CARD16" name="rates">
-			<fieldref>nRates</fieldref>
-		</list>
-	</struct>
-
-	<request name="QueryVersion" opcode="0">
-		<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>
-
-	<!-- This is for the 1.1 version request.  I don't believe we need to specify a 1.0 request
-	as few things used randr 1.0.  The only difference is the removal of refresh and padding I think.
-	BEWARE: the docs lie!
-	-->
-	<request name="SetScreenConfig" opcode="2">
-		<field type="WINDOW" name="drawable" />
-		<field type="CARD32" name="timestamp" />
-		<field type="CARD32" name="config_timestamp" />
-		<field type="CARD16" name="sizeID" />
-		<field type="INT16" name="rotation" />
-		<field type="CARD16" name="refresh" />
-		<pad bytes="2" />
-		<reply>
-			<field type="CARD8" name="status" />
-			<field type="CARD32" name="timestamp" />
-			<field type="CARD32" name="config_timestamp" />
-			<field type="WINDOW" name="root" />
-			<field type="CARD16" name="subpixel_order" />
-			<pad bytes="10" />
-		</reply>
-	</request>
-
-	<enum name="SetConfig">
-		<item name="Success"><value>0</value></item>
-		<item name="InvalidConfigTime"><value>1</value></item>
-		<item name="InvalidTime"><value>2</value></item>
-		<item name="Failed"><value>3</value></item>
-	</enum>
-
-	<request name="SelectInput" opcode="4">	
-		<field type="WINDOW" name="window" />
-		<field type="CARD16" name="enable" />
-		<pad bytes="2" />
-	</request>
-
-	<!--
-	I think this is correct.  It works. though I believe nInfo is a bit high...
-	-->
-	<request name="GetScreenInfo" opcode="5">
-		<field type="WINDOW" name="window" />
-		<reply>
-			<field type="CARD8" name="rotations" />
-			<field type="WINDOW" name="root" />
-			<field type="CARD32" name="timestamp" />
-			<field type="CARD32" name="config_timestamp" />
-			<field type="CARD16" name="nSizes" />
-			<field type="CARD16" name="sizeID" />
-			<field type="INT16" name="rotation" />
-			<field type="CARD16" name="rate" />
-			<field type="CARD16" name="nInfo" />
-			<pad bytes="2" />
-			<list type="ScreenSize" name="sizes">
-			    <fieldref>nSizes</fieldref>
-			</list>
-			<list type="RefreshRates" name="rates">
-				<op op="-">
-					<fieldref>nInfo</fieldref>
-					<fieldref>nSizes</fieldref>
-				</op>
-			</list>
-		</reply>
-	</request>
-
-	<enum name="SM" >
-		<item name="ScreenChangeNotify"><value>1</value></item>
-	</enum>
-	
-	<event name="ScreenChangeNotify" number="0">
-		<field type="CARD8" name="rotation" />
-		<field type="CARD32" name="timestamp" />
-		<field type="CARD32" name="config_timestamp" />
-		<field type="WINDOW" name="root" />
-		<field type="WINDOW" name="request_window" />
-		<field type="CARD16" name="sizeID" />
-		<field type="CARD16" name="subpixel_order" />
-		<field type="CARD16" name="width" />
-		<field type="CARD16" name="height" />
-		<field type="CARD16" name="mwidth" />
-		<field type="CARD16" name="mheight" />
-	</event>
-		
-</xcb>
diff --git a/src/extensions/record.xml b/src/extensions/record.xml
deleted file mode 100644
index 09729ad..0000000
--- a/src/extensions/record.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="record" extension-xname="RECORD" extension-name="Record">
-
-    <!-- Types -->
-    <xidtype name="CONTEXT" />
-    
-    <struct name="Range8">
-	<field type="CARD8" name="first" />
-	<field type="CARD8" name="last" />
-    </struct>
-
-    <struct name="Range16">
-	<field type="CARD16" name="first" />
-	<field type="CARD16" name="last" />
-    </struct>
-
-    <struct name="ExtRange">
-	<field type="Range8" name="major" />
-	<field type="Range16" name="minor" />
-    </struct>
-
-    <struct name="Range">
-	<field type="Range8" name="core_requests" />
-	<field type="Range8" name="core_replies" />
-	<field type="ExtRange" name="ext_requests" />
-	<field type="ExtRange" name="ext_replies" />
-	<field type="Range8" name="delivered_events" />
-	<field type="Range8" name="device_events" />
-	<field type="Range8" name="errors" />
-	<field type="BOOL" name="client_started" />
-	<field type="BOOL" name="client_died" />
-    </struct>
-
-    <typedef oldname="CARD8" newname="ElementHeader" />
-    <enum name="HType">
-	<item name="FromServerTime"><value>0x01</value></item>
-	<item name="FromClientTime"><value>0x02</value></item>
-	<item name="FromClientSequence"><value>0x04</value></item>
-    </enum>
-
-    <typedef oldname="CARD32" newname="ClientSpec" />
-    <enum name="CS">
-	<item name="CurrentClients"><value>1</value></item>
-	<item name="FutureClients"><value>2</value></item>
-	<item name="AllClients"><value>3</value></item>
-    </enum>
-
-    <struct name="ClientInfo">
-	<field type="ClientSpec" name="client_resource" />
-	<field type="CARD32" name="num_ranges" />
-	<list type="Range" name="ranges">
-	    <fieldref>num_ranges</fieldref>
-	</list>
-    </struct>
-
-    <!-- Errors -->
-    <error name="BadContext" number="0">
-	<field type="CARD32" name="invalid_record" />
-    </error>
-	
-    <!-- Requests -->
-    <request name="QueryVersion" opcode="0">
-	<field type="CARD16" name="major_version" />
-	<field type="CARD16" name="minor_version" />
-	<reply>
-	    <pad bytes="1"/>
-	    <field type="CARD16" name="major_version" />
-	    <field type="CARD16" name="minor_version" />
-	</reply>
-    </request>
-
-    <request name="CreateContext" opcode="1">
-	<field type="record:CONTEXT" name="context" />
-	<field type="ElementHeader" name="element_header" />
-	<pad bytes="3" />
-	<field type="CARD32" name="num_client_specs" />
-	<field type="CARD32" name="num_ranges" />
-	<list type="ClientSpec" name="client_specs">
-	    <fieldref>num_client_specs</fieldref>
-	</list>
-	<list type="Range" name="ranges">
-	    <fieldref>num_ranges</fieldref>
-	</list>
-    </request>
-
-    <request name="RegisterClients" opcode="2">
-	<field type="record:CONTEXT" name="context" />
-	<field type="ElementHeader" name="element_header" />
-	<pad bytes="3" />
-	<field type="CARD32" name="num_client_specs" />
-	<field type="CARD32" name="num_ranges" />
-	<list type="ClientSpec" name="client_specs">
-	    <fieldref>num_client_specs</fieldref>
-	</list>
-	<list type="Range" name="ranges">
-	    <fieldref>num_ranges</fieldref>
-	</list>
-    </request>
-
-    <request name="UnregisterClients" opcode="3">
-	<field type="record:CONTEXT" name="context" />
-	<field type="CARD32" name="num_client_specs" />
-	<list type="ClientSpec" name="client_specs">
-	    <fieldref>num_client_specs</fieldref>
-	</list>
-    </request>
-
-    <request name="GetContext" opcode="4">
-	<field type="record:CONTEXT" name="context" />
-	<reply>
-	    <field type="BOOL" name="enabled" />
-	    <field type="ElementHeader" name="element_header" />
-	    <pad bytes="3" />
-	    <field type="CARD32" name="num_intercepted_clients" />
-	    <pad bytes="16" />
-	    <list type="ClientInfo" name="intercepted_clients">
-		<fieldref>num_intercepted_clients</fieldref>
-	    </list>
-	</reply>
-    </request>
-
-    <request name="EnableContext" opcode="5">
-	<field type="record:CONTEXT" name="context" />
-	<reply>
-	    <field type="CARD8" name="category" />
-	    <field type="ElementHeader" name="element_header" />
-	    <field type="BOOL" name="client_swapped" />
-	    <pad bytes="2" />
-	    <field type="CARD32" name="xid_base" />
-	    <field type="CARD32" name="server_time" />
-	    <field type="CARD32" name="rec_sequence_num" />
-	    <pad bytes="8" />
-	    <list type="BYTE" name="data" />
-	</reply>
-    </request>
-	    
-    <request name="DisableContext" opcode="6">
-	<field type="record:CONTEXT" name="context" />
-    </request>
-
-    <request name="FreeContext" opcode="7">
-	<field type="record:CONTEXT" name="context" />
-    </request>
-    
-</xcb>
diff --git a/src/extensions/render.xml b/src/extensions/render.xml
deleted file mode 100644
index 88e9a40..0000000
--- a/src/extensions/render.xml
+++ /dev/null
@@ -1,544 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2002-2004 Carl D. Worth, Jamey Sharp, Bart Massey, Josh Triplett
-All Rights Reserved.  See the file COPYING in this directory
-for licensing information.
--->
-<xcb header="render" extension-xname="RENDER" extension-name="Render">
-  <!-- supports version 0.10 -->
-
-  <import>xproto</import>
-
-  <enum name="PictType">
-    <item name="Indexed" />
-    <item name="Direct" />
-  </enum>
-
-  <!-- Disjoint* and Conjoint* are new in version 0.2 -->
-  <enum name="PictOp">
-    <item name="Clear" />
-    <item name="Src" />
-    <item name="Dst" />
-    <item name="Over" />
-    <item name="OverReverse" />
-    <item name="In" />
-    <item name="InReverse" />
-    <item name="Out" />
-    <item name="OutReverse" />
-    <item name="Atop" />
-    <item name="AtopReverse" />
-    <item name="Xor" />
-    <item name="Add" />
-    <item name="Saturate" />
-    
-    <item name="DisjointClear"><value>0x10</value></item>
-    <item name="DisjointSrc" />
-    <item name="DisjointDst" />
-    <item name="DisjointOver" />
-    <item name="DisjointOverReverse" />
-    <item name="DisjointIn" />
-    <item name="DisjointInReverse" />
-    <item name="DisjointOut" />
-    <item name="DisjointOutReverse" />
-    <item name="DisjointAtop" />
-    <item name="DisjointAtopReverse" />
-    <item name="DisjointXor" />
-    
-    <item name="ConjointClear"><value>0x20</value></item>
-    <item name="ConjointSrc" />
-    <item name="ConjointDst" />
-    <item name="ConjointOver" />
-    <item name="ConjointOverReverse" />
-    <item name="ConjointIn" />
-    <item name="ConjointInReverse" />
-    <item name="ConjointOut" />
-    <item name="ConjointOutReverse" />
-    <item name="ConjointAtop" />
-    <item name="ConjointAtopReverse" />
-    <item name="ConjointXor" />
-  </enum>
-
-  <enum name="PolyEdge">
-    <item name="Sharp" />
-    <item name="Smooth" />
-  </enum>
-
-  <enum name="PolyMode">
-    <item name="Precise" />
-    <item name="Imprecise" />
-  </enum>
-
-  <enum name="CP">
-    <item name="Repeat">          <bit>0</bit></item>
-    <item name="AlphaMap">        <bit>1</bit></item>
-    <item name="AlphaXOrigin">    <bit>2</bit></item>
-    <item name="AlphaYOrigin">    <bit>3</bit></item>
-    <item name="ClipXOrigin">     <bit>4</bit></item>
-    <item name="ClipYOrigin">     <bit>5</bit></item>
-    <item name="ClipMask">        <bit>6</bit></item>
-    <item name="GraphicsExposure"><bit>7</bit></item>
-    <item name="SubwindowMode">   <bit>8</bit></item>
-    <item name="PolyEdge">        <bit>9</bit></item>
-    <item name="PolyMode">        <bit>10</bit></item>
-    <item name="Dither">          <bit>11</bit></item>
-    <item name="ComponentAlpha">  <bit>12</bit></item>
-  </enum>
-
-  <enum name="SubPixel">
-    <item name="Unknown" />
-    <item name="HorizontalRGB" />
-    <item name="HorizontalBGR" />
-    <item name="VerticalRGB" />
-    <item name="VerticalBGR" />
-    <item name="None" />
-  </enum>
-
-  <!-- Extended repeat attributes introduced in 0.10 -->
-  <enum name="Repeat">
-    <item name="None" />
-    <item name="Normal" />
-    <item name="Pad" />
-    <item name="Reflect" />
-  </enum>
-
-  <typedef oldname="CARD32" newname="GLYPH" />
-  <xidtype name="GLYPHSET" />
-
-  <xidtype name="PICTURE" />
-  <xidtype name="PICTFORMAT" />
-
-  <typedef oldname="INT32" newname="FIXED" />
-
-  <error name="PictFormat" number="0" />
-  <error name="Picture" number="1" />
-  <error name="PictOp" number="2" />
-  <error name="GlyphSet" number="3" />
-  <error name="Glyph" number="4" />
-
-  <struct name="DIRECTFORMAT">
-    <field type="CARD16" name="red_shift" />
-    <field type="CARD16" name="red_mask" />
-    <field type="CARD16" name="green_shift" />
-    <field type="CARD16" name="green_mask" />
-    <field type="CARD16" name="blue_shift" />
-    <field type="CARD16" name="blue_mask" />
-    <field type="CARD16" name="alpha_shift" />
-    <field type="CARD16" name="alpha_mask" />
-  </struct>
-
-  <struct name="PICTFORMINFO">
-    <field type="PICTFORMAT" name="id" />
-    <field type="CARD8" name="type" />
-    <field type="CARD8" name="depth" />
-    <pad bytes="2" />
-    <field type="DIRECTFORMAT" name="direct" />
-    <field type="COLORMAP" name="colormap" />
-  </struct>
-
-  <struct name="PICTVISUAL">
-    <field type="VISUALID" name="visual" />
-    <field type="PICTFORMAT" name="format" />
-  </struct>
-
-  <struct name="PICTDEPTH">
-    <field type="CARD8" name="depth" />
-    <pad bytes="1" />
-    <field type="CARD16" name="num_visuals" />
-    <pad bytes="4" />
-    <list type="PICTVISUAL" name="visuals">
-      <fieldref>num_visuals</fieldref>
-    </list>
-  </struct>
-
-  <struct name="PICTSCREEN">
-    <field type="CARD32" name="num_depths" />
-    <field type="PICTFORMAT" name="fallback" />
-    <list type="PICTDEPTH" name="depths">
-      <fieldref>num_depths</fieldref>
-    </list>
-  </struct>
-
-  <struct name="INDEXVALUE">
-    <field type="CARD32" name="pixel" />
-    <field type="CARD16" name="red" />
-    <field type="CARD16" name="green" />
-    <field type="CARD16" name="blue" />
-    <field type="CARD16" name="alpha" />
-  </struct>
-
-  <struct name="COLOR">
-    <field type="CARD16" name="red" />
-    <field type="CARD16" name="green" />
-    <field type="CARD16" name="blue" />
-    <field type="CARD16" name="alpha" />
-  </struct>
-
-  <struct name="POINTFIX">
-    <field type="FIXED" name="x" />
-    <field type="FIXED" name="y" />
-  </struct>
-
-  <struct name="LINEFIX">
-    <field type="POINTFIX" name="p1" />
-    <field type="POINTFIX" name="p2" />
-  </struct>
-
-  <struct name="TRIANGLE">
-    <field type="POINTFIX" name="p1" />
-    <field type="POINTFIX" name="p2" />
-    <field type="POINTFIX" name="p3" />
-  </struct>
-
-  <struct name="TRAPEZOID">
-    <field type="FIXED" name="top" />
-    <field type="FIXED" name="bottom" />
-    <field type="LINEFIX" name="left" />
-    <field type="LINEFIX" name="right" />
-  </struct>
-
-  <struct name="GLYPHINFO">
-    <field type="CARD16" name="width" />
-    <field type="CARD16" name="height" />
-    <field type="INT16" name="x" />
-    <field type="INT16" name="y" />
-    <field type="INT16" name="x_off" />
-    <field type="INT16" name="y_off" />
-  </struct>
-
-
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD32" name="client_major_version" />
-    <field type="CARD32" name="client_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="QueryPictFormats" opcode="1">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="num_formats" />
-      <field type="CARD32" name="num_screens" />
-      <field type="CARD32" name="num_depths" />
-      <field type="CARD32" name="num_visuals" />
-      <field type="CARD32" name="num_subpixel" /> <!-- new in version 0.6 -->
-      <pad bytes="4" />
-      <list type="PICTFORMINFO" name="formats">
-        <fieldref>num_formats</fieldref>
-      </list>
-      <list type="PICTSCREEN" name="screens">
-        <fieldref>num_screens</fieldref>
-      </list>
-      <list type="CARD32" name="subpixels">
-        <fieldref>num_subpixel</fieldref>
-      </list>
-    </reply>
-  </request>
-
-  <!-- from version 0.7 -->
-  <request name="QueryPictIndexValues" opcode="2">
-    <field type="PICTFORMAT" name="format" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="num_values" />
-      <pad bytes="20" />
-      <list type="INDEXVALUE" name="values">
-        <fieldref>num_values</fieldref>
-      </list>
-    </reply>
-  </request>
-
-  <!-- opcode 3 reserved for QueryDithers -->
-
-  <request name="CreatePicture" opcode="4">
-    <field type="PICTURE" name="pid" />
-    <field type="DRAWABLE" name="drawable" />
-    <field type="PICTFORMAT" name="format" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
-  </request>
-
-  <request name="ChangePicture" opcode="5">
-    <field type="PICTURE" name="picture" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
-  </request>
-
-  <request name="SetPictureClipRectangles" opcode="6">
-    <field type="PICTURE" name="picture" />
-    <field type="INT16" name="clip_x_origin" />
-    <field type="INT16" name="clip_y_origin" />
-    <list type="RECTANGLE" name="rectangles" />
-  </request>
-
-  <request name="FreePicture" opcode="7">
-    <field type="PICTURE" name="picture" />
-  </request>
-
-  <request name="Composite" opcode="8">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="mask" />
-    <field type="PICTURE" name="dst" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <field type="INT16" name="mask_x" />
-    <field type="INT16" name="mask_y" />
-    <field type="INT16" name="dst_x" />
-    <field type="INT16" name="dst_y" />
-    <field type="CARD16" name="width" />
-    <field type="CARD16" name="height" />
-  </request>
-
-  <!-- opcode 9 reserved for Scale -->
-
-  <request name="Trapezoids" opcode="10">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="TRAPEZOID" name="traps" />
-  </request>
-
-  <request name="Triangles" opcode="11">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="TRIANGLE" name="triangles" />
-  </request>
-
-  <request name="TriStrip" opcode="12">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="POINTFIX" name="points" />
-  </request>
-
-  <request name="TriFan" opcode="13">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="POINTFIX" name="points" />
-  </request>
-
-  <!-- opcode 14 reserved for ColorTrapezoids -->
-
-  <!-- opcode 15 reserved for ColorTriangles -->
-
-  <!-- opcode 16 reserved for Transform -->
-
-  <request name="CreateGlyphSet" opcode="17">
-    <field type="GLYPHSET" name="gsid" />
-    <field type="PICTFORMAT" name="format" />
-  </request>
-
-  <request name="ReferenceGlyphSet" opcode="18">
-    <field type="GLYPHSET" name="gsid" />
-    <field type="GLYPHSET" name="existing" />
-  </request>
-
-  <request name="FreeGlyphSet" opcode="19">
-    <field type="GLYPHSET" name="glyphset" />
-  </request>
-
-  <request name="AddGlyphs" opcode="20">
-    <field type="GLYPHSET" name="glyphset" />
-    <field type="CARD32" name="glyphs_len" />
-    <list type="CARD32" name="glyphids">
-      <fieldref>glyphs_len</fieldref>
-    </list>
-    <list type="GLYPHINFO" name="glyphs">
-      <fieldref>glyphs_len</fieldref>
-    </list>
-    <list type="BYTE" name="data" />
-  </request>
-
-  <!-- opcode 21 reserved for AddGlyphsFromPicture -->
-
-  <request name="FreeGlyphs" opcode="22">
-    <field type="GLYPHSET" name="glyphset" />
-    <list type="GLYPH" name="glyphs" />
-  </request>
-
-  <request name="CompositeGlyphs8" opcode="23">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="GLYPHSET" name="glyphset" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="BYTE" name="glyphcmds" />
-  </request>
-
-  <request name="CompositeGlyphs16" opcode="24">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="GLYPHSET" name="glyphset" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="BYTE" name="glyphcmds" />
-  </request>
-
-  <request name="CompositeGlyphs32" opcode="25">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="src" />
-    <field type="PICTURE" name="dst" />
-    <field type="PICTFORMAT" name="mask_format" />
-    <field type="GLYPHSET" name="glyphset" />
-    <field type="INT16" name="src_x" />
-    <field type="INT16" name="src_y" />
-    <list type="BYTE" name="glyphcmds" />
-  </request>
-
-  <!-- new in version 0.1 -->
-
-  <request name="FillRectangles" opcode="26">
-    <field type="CARD8" name="op" />
-    <pad bytes="3" />
-    <field type="PICTURE" name="dst" />
-    <field type="COLOR" name="color" />
-    <list type="RECTANGLE" name="rects" />
-  </request>
-
-  <!-- new in version 0.5 -->
-
-  <request name="CreateCursor" opcode="27">
-    <field type="CURSOR" name="cid" />
-    <field type="PICTURE" name="source" />
-    <field type="CARD16" name="x" />
-    <field type="CARD16" name="y" />
-  </request>
-
-  <!-- new in version 0.6 -->
-
-  <struct name="TRANSFORM">
-    <field type="FIXED" name="matrix11" />
-    <field type="FIXED" name="matrix12" />
-    <field type="FIXED" name="matrix13" />
-    <field type="FIXED" name="matrix21" />
-    <field type="FIXED" name="matrix22" />
-    <field type="FIXED" name="matrix23" />
-    <field type="FIXED" name="matrix31" />
-    <field type="FIXED" name="matrix32" />
-    <field type="FIXED" name="matrix33" />
-  </struct>
-
-  <request name="SetPictureTransform" opcode="28">
-    <field type="PICTURE" name="picture" />
-    <field type="TRANSFORM" name="transform" />
-  </request>
-
-  <request name="QueryFilters" opcode="29">
-    <field type="DRAWABLE" name="drawable" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="num_aliases" />
-      <field type="CARD32" name="num_filters" />
-      <pad bytes="16" />
-      <list type="CARD16" name="aliases">
-        <fieldref>num_aliases</fieldref>
-      </list>
-      <list type="STR" name="filters">
-        <fieldref>num_filters</fieldref>
-      </list>
-    </reply>
-  </request>
-
-  <request name="SetPictureFilter" opcode="30">
-    <field type="PICTURE" name="picture" />
-    <field type="CARD16" name="filter_len" />
-    <list type="char" name="filter">
-      <fieldref>filter_len</fieldref>
-    </list>
-    <list type="FIXED" name="values" />
-  </request>
-
-  <!-- new in version 0.8 -->
-
-  <struct name="ANIMCURSORELT">
-    <field type="CURSOR" name="cursor" />
-    <field type="CARD32" name="delay" />
-  </struct>
-
-  <request name="CreateAnimCursor" opcode="31">
-    <field type="CURSOR" name="cid" />
-    <list type="ANIMCURSORELT" name="cursors" />
-  </request>
-
-  <!-- new in version 0.9 -->
- 
-  <struct name="SPANFIX">
-    <field type="FIXED" name="l" />
-    <field type="FIXED" name="r" />
-    <field type="FIXED" name="y" />
-  </struct>
-
-  <struct name="TRAP">
-    <field type="SPANFIX" name="top" />
-    <field type="SPANFIX" name="bot" />
-  </struct>
-
-  <request name="AddTraps" opcode="32">
-    <field type="PICTURE" name="picture" />
-    <field type="INT16" name="x_off" />
-    <field type="INT16" name="y_off" />
-    <list type="TRAP" name="traps" />
-  </request>
-  
-  <!-- new in version 0.10 -->
-
-  <request name="CreateSolidFill" opcode="33">
-    <field type="PICTURE" name="picture" />
-    <field type="COLOR" name="color" />
-  </request>
-
-  <request name="CreateLinearGradient" opcode="34">
-    <field type="PICTURE" name="picture" />
-    <field type="POINTFIX" name="p1" />
-    <field type="POINTFIX" name="p2" />
-    <field type="CARD32" name="num_stops" />
-  </request>
-
-  <request name="CreateRadialGradient" opcode="35">
-    <field type="PICTURE" name="picture" />
-    <field type="POINTFIX" name="inner" />
-    <field type="POINTFIX" name="outer" />
-    <field type="FIXED" name="inner_radius" />
-    <field type="FIXED" name="outer_radius" />
-    <field type="CARD32" name="num_stops" />
-  </request>
-
-  <request name="CreateConicalGradient" opcode="36">
-    <field type="PICTURE" name="picture" />
-    <field type="POINTFIX" name="center" />
-    <field type="FIXED" name="angle" />        <!-- degrees -->
-    <field type="CARD32" name="num_stops" />
-  </request>
-</xcb>
diff --git a/src/extensions/res.xml b/src/extensions/res.xml
deleted file mode 100644
index eda0cbe..0000000
--- a/src/extensions/res.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<xcb header="res" extension-xname="X-Resource" extension-name="Res">
-    <struct name="Client">
-        <field type="CARD32" name="resource_base" />
-        <field type="CARD32" name="resource_mask" />
-    </struct>
-
-    <struct name="Type">
-        <field type="CARD32" name="resource_type" />
-        <field type="CARD32" name="count" />
-    </struct>
-
-    <request name="QueryVersion" opcode="0">
-        <field type="CARD8" name="client_major" />
-        <field type="CARD8" name="client_minor" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="server_major" />
-            <field type="CARD16" name="server_minor" />
-        </reply>
-    </request>
-
-    <request name="QueryClients" opcode="1">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num_clients" />
-            <pad bytes="20" />
-            <list type="Client" name="clients">
-                <fieldref>num_clients</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="QueryClientResources" opcode="2">
-        <field type="CARD32" name="xid" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num_types" />
-            <pad bytes="20" />
-            <list type="Type" name="types">
-                <fieldref>num_types</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="QueryClientPixmapBytes" opcode="3">
-        <field type="CARD32" name="xid" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="bytes" />
-            <field type="CARD32" name="bytes_overflow" />
-        </reply>
-    </request>
-</xcb>
diff --git a/src/extensions/screensaver.xml b/src/extensions/screensaver.xml
deleted file mode 100644
index 1a095de..0000000
--- a/src/extensions/screensaver.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<!--
-
-Copyright (C) 2005 Vincent Torri.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!--
-Screen Saver Extension to the X Protocol
-Draft Standard Version 1.1
--->
-<xcb header="screensaver" extension-xname="MIT-SCREEN-SAVER" extension-name="ScreenSaver">
-  <!-- Types -->
-
-  <import>xproto</import>
-
-  <enum name="Kind">
-    <item name="Blanked" />
-    <item name="Internal" />
-    <item name="External" />
-  </enum>
-
-  <enum name="Event">
-    <item name="NotifyMask"><bit>0</bit></item>
-    <item name="CycleMask"> <bit>1</bit></item>
-  </enum>
-
-  <enum name="State">
-    <item name="Off" />
-    <item name="On" />
-    <item name="Cycle" />
-    <item name="Disabled" />
-  </enum>
-
-  <!-- Errors -->
-  <!-- Requests -->
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD8" name="client_major_version"/>
-    <field type="CARD8" name="client_minor_version"/>
-    <pad bytes="2"/>
-    <reply>
-      <pad bytes="1"/>
-      <field type="CARD16" name="server_major_version"/>
-      <field type="CARD16" name="server_minor_version"/>
-      <pad bytes="20"/>
-    </reply>
-  </request>
-
-  <request name="QueryInfo" opcode="1">
-    <field type="DRAWABLE" name="drawable"/>
-    <reply>
-      <field type="CARD8" name="state"/>
-      <field type="WINDOW" name="saver_window"/>
-      <field type="CARD32" name="ms_until_server"/>
-      <field type="CARD32" name="ms_since_user_input"/>
-      <field type="CARD32" name="event_mask" />
-      <field type="BYTE" name="kind"/>  <!-- enum Kind -->
-      <pad bytes="7"/>
-    </reply>
-  </request>
-
-  <request name="SelectInput" opcode="2">
-    <field type="DRAWABLE" name="drawable"/>
-    <field type="CARD32" name="event_mask" />   <!-- enum Event -->
-  </request>
-
-  <request name="SetAttributes" opcode="3">
-    <field type="DRAWABLE" name="drawable"/>
-    <field type="INT16" name="x"/>
-    <field type="INT16" name="y"/>
-    <field type="CARD16" name="width"/>
-    <field type="CARD16" name="height"/>
-    <field type="CARD16" name="border_width"/>
-    <field type="BYTE" name="class"/>   <!-- enum XCBWindowClass -->
-    <field type="CARD8" name="depth"/>
-    <field type="VISUALID" name="visual"/>
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
-  </request>
-
-  <request name="UnsetAttributes" opcode="4">
-    <field type="DRAWABLE" name="drawable"/>
-  </request>
-  
-  <!-- version 1.1 -->
-  <request name="Suspend" opcode="5">
-    <field type="BOOL" name="suspend" />
-    <pad bytes="3" />
-  </request>
-
-  <!-- Events -->
-
-  <event name="Notify" number="0">
-    <field type="CARD8" name="code"/>
-    <field type="BYTE" name="state"/>    <!-- enum State -->
-    <field type="CARD16" name="sequence_number"/>
-    <field type="TIMESTAMP" name="time"/>
-    <field type="WINDOW" name="root"/>
-    <field type="WINDOW" name="window"/>
-    <field type="BYTE" name="kind"/>     <!-- enum Kind -->
-    <field type="BOOL" name="forced"/>
-    <pad bytes="14"/>
-  </event>
-
-</xcb>
diff --git a/src/extensions/shape.xml b/src/extensions/shape.xml
deleted file mode 100644
index 36d0652..0000000
--- a/src/extensions/shape.xml
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!-- This file describes version 1.1 of the Shape extension. -->
-<xcb header="shape" extension-xname="SHAPE" extension-name="Shape">
-  <import>xproto</import>
-
-  <typedef oldname="CARD8" newname="OP" />
-  <typedef oldname="CARD8" newname="KIND" />
-
-  <!-- Shape attributes of type OP. -->
-  <enum name="SO">
-    <item name="Set" />
-    <item name="Union" />
-    <item name="Intersect" />
-    <item name="Subtract" />
-    <item name="Invert" />
-  </enum>
-
-  <!-- Shape attributes of type KIND. -->
-  <enum name="SK">
-    <item name="Bounding" />
-    <item name="Clip" />
-    <item name="Input" />      <!-- added in version 1.1 -->
-  </enum>
-
-  <event name="Notify" number="0">
-    <field type="KIND" name="shape_kind" />
-    <field type="WINDOW" name="affected_window" />
-    <field type="INT16" name="extents_x" />
-    <field type="INT16" name="extents_y" />
-    <field type="CARD16" name="extents_width" />
-    <field type="CARD16" name="extents_height" />
-    <field type="TIMESTAMP" name="server_time" />
-    <field type="BOOL" name="shaped" />
-  </event>
-
-  <request name="QueryVersion" opcode="0">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="major_version" />
-      <field type="CARD16" name="minor_version" />
-    </reply>
-  </request>
-
-  <request name="Rectangles" opcode="1">
-    <field type="OP" name="operation" />
-    <field type="KIND" name="destination_kind" />
-    <field type="BYTE" name="ordering" />
-    <pad bytes="1" />
-    <field type="WINDOW" name="destination_window" />
-    <field type="INT16" name="x_offset" />
-    <field type="INT16" name="y_offset" />
-    <list type="RECTANGLE" name="rectangles" />
-  </request>
-
-  <request name="Mask" opcode="2">
-    <field type="OP" name="operation" />
-    <field type="KIND" name="destination_kind" />
-    <pad bytes="2" />
-    <field type="WINDOW" name="destination_window" />
-    <field type="INT16" name="x_offset" />
-    <field type="INT16" name="y_offset" />
-    <field type="PIXMAP" name="source_bitmap" />
-  </request>
-
-  <request name="Combine" opcode="3">
-    <field type="OP" name="operation" />
-    <field type="KIND" name="destination_kind" />
-    <field type="KIND" name="source_kind" />
-    <pad bytes="1" />
-    <field type="WINDOW" name="destination_window" />
-    <field type="INT16" name="x_offset" />
-    <field type="INT16" name="y_offset" />
-    <field type="WINDOW" name="source_window" />
-  </request>
-
-  <request name="Offset" opcode="4">
-    <field type="KIND" name="destination_kind" />
-    <pad bytes="3" />
-    <field type="WINDOW" name="destination_window" />
-    <field type="INT16" name="x_offset" />
-    <field type="INT16" name="y_offset" />
-  </request>
-
-  <request name="QueryExtents" opcode="5">
-    <field type="WINDOW" name="destination_window" />
-    <reply>
-      <pad bytes="1" />
-      <field type="BOOL" name="bounding_shaped" />
-      <field type="BOOL" name="clip_shaped" />
-      <pad bytes="2" />
-      <field type="INT16" name="bounding_shape_extents_x" />
-      <field type="INT16" name="bounding_shape_extents_y" />
-      <field type="CARD16" name="bounding_shape_extents_width" />
-      <field type="CARD16" name="bounding_shape_extents_height" />
-      <field type="INT16" name="clip_shape_extents_x" />
-      <field type="INT16" name="clip_shape_extents_y" />
-      <field type="CARD16" name="clip_shape_extents_width" />
-      <field type="CARD16" name="clip_shape_extents_height" />
-    </reply>
-  </request>
-
-  <request name="SelectInput" opcode="6">
-    <field type="WINDOW" name="destination_window" />
-    <field type="BOOL" name="enable" />
-  </request>
-
-  <request name="InputSelected" opcode="7">
-    <field type="WINDOW" name="destination_window" />
-    <reply>
-      <field type="BOOL" name="enabled" />
-    </reply>
-  </request>
-
-  <request name="GetRectangles" opcode="8">
-    <field type="WINDOW" name="window" />
-    <field type="KIND" name="source_kind" />
-    <reply>
-      <field type="BYTE" name="ordering" />
-      <field type="CARD32" name="rectangles_len" />
-      <list type="RECTANGLE" name="rectangles">
-        <fieldref>rectangles_len</fieldref>
-      </list>
-    </reply>
-  </request>
-</xcb>
diff --git a/src/extensions/shm.xml b/src/extensions/shm.xml
deleted file mode 100644
index e576c1f..0000000
--- a/src/extensions/shm.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<xcb header="shm" extension-xname="MIT-SHM" extension-name="Shm">
-  <import>xproto</import>
-
-  <xidtype name="SEG" />
-
-  <event name="Completion" number="0">
-    <pad bytes="1" />
-    <field type="DRAWABLE" name="drawable" />
-    <field type="SEG" name="shmseg" />
-    <field type="CARD16" name="minor_event" />
-    <field type="BYTE" name="major_event" />
-    <pad bytes="1" />
-    <field type="CARD32" name="offset" />
-  </event>
-
-  <errorcopy name="BadSeg" number="0" ref="Value" />
-
-  <request name="QueryVersion" opcode="0">
-    <reply>
-      <field type="BOOL" name="shared_pixmaps" />
-      <field type="CARD16" name="major_version" />
-      <field type="CARD16" name="minor_version" />
-      <field type="CARD16" name="uid" />
-      <field type="CARD16" name="gid" />
-      <field type="CARD8" name="pixmap_format" />
-    </reply>
-  </request>
-
-  <request name="Attach" opcode="1">
-    <field type="SEG" name="shmseg" />
-    <field type="CARD32" name="shmid" />
-    <field type="BOOL" name="read_only" />
-  </request>
-
-  <request name="Detach" opcode="2">
-    <field type="SEG" name="shmseg" />
-  </request>
-
-  <request name="PutImage" opcode="3">
-    <field type="DRAWABLE" name="drawable" />
-    <field type="GCONTEXT" name="gc" />
-    <field type="CARD16" name="total_width" />
-    <field type="CARD16" name="total_height" />
-    <field type="CARD16" name="src_x" />
-    <field type="CARD16" name="src_y" />
-    <field type="CARD16" name="src_width" />
-    <field type="CARD16" name="src_height" />
-    <field type="INT16" name="dst_x" />
-    <field type="INT16" name="dst_y" />
-    <field type="CARD8" name="depth" />
-    <field type="CARD8" name="format" />
-    <field type="CARD8" name="send_event" />
-    <pad bytes="1" />
-    <field type="SEG" name="shmseg" />
-    <field type="CARD32" name="offset" />
-  </request>
-
-  <request name="GetImage" opcode="4">
-    <field type="DRAWABLE" name="drawable" />
-    <field type="INT16" name="x" />
-    <field type="INT16" name="y" />
-    <field type="CARD16" name="width" />
-    <field type="CARD16" name="height" />
-    <field type="CARD32" name="plane_mask" />
-    <field type="CARD8" name="format" />
-    <pad bytes="3" />
-    <field type="SEG" name="shmseg" />
-    <field type="CARD32" name="offset" />
-    <reply>
-      <field type="CARD8" name="depth" />
-      <field type="VISUALID" name="visual" />
-      <field type="CARD32" name="size" />
-    </reply>
-  </request>
-
-  <request name="CreatePixmap" opcode="5">
-    <field type="PIXMAP" name="pid" />
-    <field type="DRAWABLE" name="drawable" />
-    <field type="CARD16" name="width" />
-    <field type="CARD16" name="height" />
-    <field type="CARD8" name="depth" />
-    <pad bytes="3" />
-    <field type="SEG" name="shmseg" />
-    <field type="CARD32" name="offset" />
-  </request>
-</xcb>
diff --git a/src/extensions/sync.xml b/src/extensions/sync.xml
deleted file mode 100644
index 6efca36..0000000
--- a/src/extensions/sync.xml
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Mikko Torni and Josh Triplett.
-All Rights Reserved.  See the file COPYING in this directory
-for licensing information.
--->
-<xcb header="sync" extension-xname="SYNC" extension-name="Sync">
-  <import>xproto</import>
-
-  <xidtype name="ALARM" />
-
-  <enum name="ALARMSTATE">
-    <item name="Active" />
-    <item name="Inactive" />
-    <item name="Destroyed" />
-  </enum>
-
-  <xidtype name="COUNTER" />
-
-  <enum name="TESTTYPE">
-    <item name="PositiveTransition" />
-    <item name="NegativeTransition" />
-    <item name="PositiveComparison" />
-    <item name="NegativeComparison" />
-  </enum>
-
-  <enum name="VALUETYPE">
-    <item name="Absolute" />
-    <item name="Relative" />
-  </enum>
-
-  <enum name="CA">
-    <item name="Counter">  <bit>0</bit></item>
-    <item name="ValueType"><bit>1</bit></item>
-    <item name="Value">    <bit>2</bit></item>
-    <item name="TestType"> <bit>3</bit></item>
-    <item name="Delta">    <bit>4</bit></item>
-    <item name="Events">   <bit>5</bit></item>
-  </enum>
-
-  <struct name="INT64">
-    <field type="INT32" name="hi" />
-    <field type="CARD32" name="lo" />
-  </struct>
-
-  <struct name="SYSTEMCOUNTER">
-    <field type="COUNTER" name="counter" />
-    <field type="INT64" name="resolution" />
-    <field type="CARD16" name="name_len" />
-    <list type="CARD8" name="name">
-      <fieldref>name_len</fieldref>
-    </list>
-  </struct>
-
-  <struct name="TRIGGER">
-    <field type="COUNTER" name="counter" />
-    <field type="VALUETYPE" name="wait_type" />
-    <field type="INT64" name="wait_value" />
-    <field type="TESTTYPE" name="test_type" />
-  </struct>
-
-  <struct name="WAITCONDITION">
-    <field type="TRIGGER" name="trigger" />
-    <field type="INT64" name="event_threshold" />
-  </struct>
-
-  <error name="Counter" number="0">
-    <field type="CARD32" name="bad_counter" />
-    <field type="CARD16" name="minor_opcode" />
-    <field type="CARD8" name="major_opcode" />
-  </error>
-
-  <error name="Alarm" number="1">
-    <field type="CARD32" name="bad_alarm" />
-    <field type="CARD16" name="minor_opcode" />
-    <field type="CARD8" name="major_opcode" />
-  </error>
-    
-  <request name="Initialize" opcode="0">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD8" name="major_version" />
-      <field type="CARD8" name="minor_version" />
-    </reply>
-  </request>
-
-  <request name="ListSystemCounters" opcode="1">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="counters_len" />
-      <pad bytes="20" />
-      <list type="SYSTEMCOUNTER" name="counters">
-        <fieldref>counters_len</fieldref>
-      </list>
-    </reply>
-  </request>
-
-  <request name="CreateCounter" opcode="2">
-    <field type="COUNTER" name="id" />
-    <field type="INT64" name="initial_value" />
-  </request>
-
-  <request name="DestroyCounter" opcode="6">
-    <field type="COUNTER" name="counter" />
-  </request>
-
-  <request name="QueryCounter" opcode="5">
-    <field type="COUNTER" name="counter" />
-    <reply>
-      <pad bytes="1" />
-      <field type="INT64" name="counter_value" />
-    </reply>
-  </request>
-
-  <request name="Await" opcode="7">
-    <list type="WAITCONDITION" name="wait_list" />
-  </request>
-
-  <request name="ChangeCounter" opcode="4">
-    <field type="COUNTER" name="counter" />
-    <field type="INT64" name="amount" />
-  </request>
-
-  <request name="SetCounter" opcode="3">
-    <field type="COUNTER" name="counter" />
-    <field type="INT64" name="value" />
-  </request>
-
-  <request name="CreateAlarm" opcode="8">
-    <field type="ALARM" name="id" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
-  </request>
-
-  <request name="ChangeAlarm" opcode="9">
-    <field type="ALARM" name="id" />
-    <valueparam value-mask-type="CARD32"
-                value-mask-name="value_mask"
-                value-list-name="value_list" />
-  </request>
-
-  <request name="DestroyAlarm" opcode="11">
-    <field type="ALARM" name="alarm" />
-  </request>
-
-  <request name="QueryAlarm" opcode="10">
-    <field type="ALARM" name="alarm" />
-    <reply>
-      <pad bytes="1" />
-      <field type="TRIGGER" name="trigger" />
-      <field type="INT64" name="delta" />
-      <field type="BOOL" name="events" />
-      <field type="ALARMSTATE" name="state" />
-    </reply>
-  </request>
-
-  <request name="SetPriority" opcode="12">
-    <field type="CARD32" name="id" />
-    <field type="INT32" name="priority" />
-  </request>
-    
-  <request name="GetPriority" opcode="13">
-    <field type="CARD32" name="id" />
-    <reply>
-      <pad bytes="1" />
-      <field type="INT32" name="priority" />
-    </reply>
-  </request>
-
-  <event name="CounterNotify" number="0">
-    <field type="CARD8" name="kind" />
-    <field type="COUNTER" name="counter" />
-    <field type="INT64" name="wait_value" />
-    <field type="INT64" name="counter_value" />
-    <field type="TIMESTAMP" name="timestamp" />
-    <field type="CARD16" name="count" />
-    <field type="BOOL" name="destroyed" />
-  </event>
-
-  <event name="AlarmNotify" number="1">
-    <field type="CARD8" name="kind" />
-    <field type="ALARM" name="alarm" />
-    <field type="INT64" name="counter_value" />
-    <field type="INT64" name="alarm_value" />
-    <field type="TIMESTAMP" name="timestamp" />
-  </event>
-</xcb>
diff --git a/src/extensions/xc_misc.xml b/src/extensions/xc_misc.xml
deleted file mode 100644
index 8643503..0000000
--- a/src/extensions/xc_misc.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Mikko Torni and Josh Triplett.
-All Rights Reserved.  See the file COPYING in this directory
-for licensing information.
--->
-<xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc">
-  <request name="GetVersion" opcode="0">
-    <field type="CARD16" name="client_major_version" />
-    <field type="CARD16" name="client_minor_version" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="server_major_version" />
-      <field type="CARD16" name="server_minor_version" />
-    </reply>
-  </request>
-
-  <request name="GetXIDRange" opcode="1">
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="start_id" />
-      <field type="CARD32" name="count" />
-    </reply>
-  </request>
-
-  <request name="GetXIDList" opcode="2">
-    <field type="CARD32" name="count" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="ids_len" />
-      <pad bytes="20" />
-      <list type="CARD32" name="ids">
-        <fieldref>ids_len</fieldref>
-      </list>
-    </reply>
-  </request>
-</xcb>
diff --git a/src/extensions/xevie.xml b/src/extensions/xevie.xml
deleted file mode 100644
index 1e5851f..0000000
--- a/src/extensions/xevie.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!-- This file describes version 1 of XEVIE. -->
-<xcb header="xevie" extension-xname="XEVIE" extension-name="Xevie">
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD16" name="client_major_version" />
-    <field type="CARD16" name="client_minor_version" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD16" name="server_major_version" />
-      <field type="CARD16" name="server_minor_version" />
-      <pad bytes="20" />
-    </reply>
-  </request>
-
-  <request name="Start" opcode="1">
-    <field type="CARD32" name="screen" />
-    <reply>
-      <pad bytes="1" />
-      <pad bytes="24" />
-    </reply>
-  </request>
-
-  <request name="End" opcode="2">
-    <field type="CARD32" name="cmap" />
-    <reply>
-      <pad bytes="1" />
-      <pad bytes="24" />
-    </reply>
-  </request>
-
-  <enum name="Datatype">
-    <item name="Unmodified" />
-    <item name="Modified" />
-  </enum>
-
-  <!-- The Send request needs to send an arbitrary Event; this type is used
-       to reserve the necessary structure size. -->
-  <struct name="Event">
-    <pad bytes="32" />
-  </struct>
-
-  <request name="Send" opcode="3">
-    <field type="Event" name="event" />
-    <field type="CARD32" name="data_type" /> <!-- Datatype -->
-    <pad bytes="64" />
-    <reply>
-      <pad bytes="1" />
-      <pad bytes="24" />
-    </reply>
-  </request>
-
-  <request name="SelectInput" opcode="4">
-    <field type="CARD32" name="event_mask" />
-    <reply>
-      <pad bytes="1" />
-      <pad bytes="24" />
-    </reply>
-  </request>
-</xcb>
diff --git a/src/extensions/xf86dri.xml b/src/extensions/xf86dri.xml
deleted file mode 100644
index bb37ca7..0000000
--- a/src/extensions/xf86dri.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xf86dri" extension-xname="XFree86-DRI" extension-name="XF86Dri">
-
-    <!-- Using http://dri.sourceforge.net/doc/dri_extensions_low_level.txt -->
-
-    <!-- Types -->
-
-    <struct name="DrmClipRect">
-	<field type="INT16" name="x1" />
-	<field type="INT16" name="y1" />
-	<field type="INT16" name="x2" />
-	<field type="INT16" name="x3" />
-    </struct>
-	
-    <!-- Requests -->
-    <request name="QueryVersion" opcode="0">
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD16" name="dri_major_version" />
-	    <field type="CARD16" name="dri_minor_version" />
-	    <field type="CARD32" name="dri_minor_patch" />
-	</reply>
-    </request>
-
-    <request name="QueryDirectRenderingCapable" opcode="1">
-	<field type="CARD32" name="screen" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="BOOL" name="is_capable" />
-	</reply>
-    </request>
-
-    <request name="OpenConnection" opcode="2">
-	<field type="CARD32" name="screen" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="drm_client_key_low" />
-	    <field type="CARD32" name="drm_client_key_high" />
-	    <field type="CARD32" name="sarea_handle_low" />
-	    <field type="CARD32" name="sarea_handle_high" />
-	    <field type="CARD32" name="bus_id_len" />
-	    <pad bytes="12" />
-	    <list type="CARD8" name="bus_id">
-		<fieldref>bus_id_len</fieldref>
-	    </list>
-	</reply>
-    </request>
-
-    <request name="CloseConnection" opcode="3">
-	<field type="CARD32" name="screen" />
-    </request>
-
-    <request name="GetClientDriverName" opcode="4">
-	<field type="CARD32" name="screen" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="client_driver_major_version" />
-	    <field type="CARD32" name="client_driver_minor_version" />
-	    <field type="CARD32" name="client_driver_patch_version" />
-	    <field type="CARD32" name="client_driver_name_len" />
-	    <pad bytes="8" />
-	    <list type="CARD8" name="client_driver_name">
-		<fieldref>client_driver_name_len</fieldref>
-	    </list>
-	</reply>
-    </request>
-
-    <request name="CreateContext" opcode="5">
-	<field type="CARD32" name="visual" />
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="context" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="hw_context" />
-	</reply>
-    </request>
-
-    <request name="DestroyContext" opcode="6">
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="context" />
-    </request>
-
-    <request name="CreateDrawable" opcode="7">
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="drawable" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="hw_drawable_handle" />
-	</reply>
-    </request>
-
-    <request name="DestroyDrawable" opcode="8">
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="drawable" />
-    </request>
-
-    <request name="GetDrawableInfo" opcode="9">
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="drawable" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="drawable_table_index" />
-	    <field type="CARD32" name="drawable_table_stamp" />
-	    <field type="INT16" name="drawable_origin_X" />
-	    <field type="INT16" name="drawable_origin_Y" />
-	    <field type="INT16" name="drawable_size_W" />
-	    <field type="INT16" name="drawable_size_H" />
-	    <field type="CARD32" name="num_clip_rects" />
-	    <pad bytes="4" />
-	    <list type="DrmClipRect" name="clip_rects">
-		<fieldref>num_clip_rects</fieldref>
-	    </list>
-	</reply>
-    </request>
-
-    <request name="GetDeviceInfo" opcode="10">
-	<field type="CARD32" name="screen" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="framebuffer_handle_low" />
-	    <field type="CARD32" name="framebuffer_handle_high" />
-	    <field type="CARD32" name="framebuffer_origin_offset" />
-	    <field type="CARD32" name="framebuffer_size" />
-	    <field type="CARD32" name="framebuffer_stride" />
-	    <field type="CARD32" name="device_private_size" />
-	    <list type="CARD32" name="device_private">
-		<fieldref>device_private_size</fieldref>
-	    </list>
-	</reply>
-    </request>
-
-    <!-- Not in this doc, but specified in Mesa/src/glx/x11/xf86dri.h -->
-    <request name="AuthConnection" opcode="11">
-	<field type="CARD32" name="screen" />
-	<field type="CARD32" name="magic" />
-	<reply>
-	    <pad bytes="1" />
-	    <field type="CARD32" name="authenticated" />
-	</reply>
-    </request>	    
-</xcb>
diff --git a/src/extensions/xfixes.xml b/src/extensions/xfixes.xml
deleted file mode 100644
index 9f890cb..0000000
--- a/src/extensions/xfixes.xml
+++ /dev/null
@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-<!-- This file describes version 4 of XFixes. -->
-<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes">
-  <import>xproto</import>
-  <import>render</import>
-  <import>shape</import>
-
-  <!-- Version 1 -->
-  <request name="QueryVersion" opcode="0">
-    <field type="CARD32" name="client_major_version" />
-    <field type="CARD32" name="client_minor_version" />
-    <reply>
-      <pad bytes="1" />
-      <field type="CARD32" name="major_version" />
-      <field type="CARD32" name="minor_version" />
-      <pad bytes="16" />
-    </reply>
-  </request>
-
-  <enum name="SaveSetMode">
-    <item name="Insert" />
-    <item name="Delete" />
-  </enum>
-
-  <enum name="SaveSetTarget">
-    <item name="Nearest" />
-    <item name="Root" />
-  </enum>
-
-  <enum name="SaveSetMapping">
-    <item name="Map" />
-    <item name="Unmap" />
-  </enum>
-
-  <request name="ChangeSaveSet" opcode="1">
-    <field type="BYTE" name="mode" />   <!-- SaveSetMode -->
-    <field type="BYTE" name="target" /> <!-- SaveSetTarget -->
-    <field type="BYTE" name="map" />    <!-- SaveSetMapping -->
-    <pad bytes="1" />
-    <field type="WINDOW" name="window" />
-  </request>
-
-  <enum name="SelectionEvent">
-    <item name="SetSelectionOwner" />
-    <item name="SelectionWindowDestroy" />
-    <item name="SelectionClientClose" />
-  </enum>
-
-  <enum name="SelectionEventMask">
-    <item name="SetSelectionOwner">     <bit>0</bit></item>
-    <item name="SelectionWindowDestroy"><bit>1</bit></item>
-    <item name="SelectionClientClose">  <bit>2</bit></item>
-  </enum>
-
-  <event name="SelectionNotify" number="0">
-    <field type="CARD8"     name="subtype" /> <!-- SelectionEvent -->
-    <field type="WINDOW"    name="window" />
-    <field type="WINDOW"    name="owner" />
-    <field type="ATOM"      name="selection" />
-    <field type="TIMESTAMP" name="timestamp" />
-    <field type="TIMESTAMP" name="selection_timestamp" />
-    <pad bytes="8" />
-  </event>
-
-  <request name="SelectSelectionInput" opcode="2">
-    <field type="WINDOW" name="window" />
-    <field type="ATOM"   name="selection" />
-    <field type="CARD32" name="event_mask" /> <!-- SelectionEventMask -->
-  </request>
-
-  <enum name="CursorNotify">
-    <item name="DisplayCursor" />
-  </enum>
-
-  <enum name="CursorNotifyMask">
-    <item name="DisplayCursor"><bit>0</bit></item>
-  </enum>
-
-  <event name="CursorNotify" number="1">
-    <field type="CARD8"     name="subtype" /> <!-- CursorNotify -->
-    <field type="WINDOW"    name="window" />
-    <field type="CARD32"    name="cursor_serial" />
-    <field type="TIMESTAMP" name="timestamp" />
-    <field type="ATOM"      name="name" /> <!-- Added in version 2 -->
-    <pad bytes="12" />
-  </event>
-
-  <request name="SelectCursorInput" opcode="3">
-    <field type="WINDOW" name="window" />
-    <field type="CARD32" name="event_mask" /> <!-- CursorNotifyMask -->
-  </request>
-
-  <request name="GetCursorImage" opcode="4">
-    <reply>
-      <pad bytes="1" />
-      <field type="INT16"  name="x" />
-      <field type="INT16"  name="y" />
-      <field type="CARD16" name="width" />
-      <field type="CARD16" name="height" />
-      <field type="CARD16" name="xhot" />
-      <field type="CARD16" name="yhot" />
-      <field type="CARD32" name="cursor_serial" />
-      <pad bytes="8" />
-      <list  type="CARD32" name="cursor_image">
-        <op op="*">
-          <fieldref>width</fieldref>
-          <fieldref>height</fieldref>
-        </op>
-      </list>
-    </reply>
-  </request>
-
-  <!-- Version 2 -->
-
-  <xidtype name="REGION" />
-
-  <error name="BadRegion" number="0" />
-
-  <request name="CreateRegion" opcode="5">
-    <field type="REGION"    name="region" />
-    <list  type="RECTANGLE" name="rectangles" />
-  </request>
-
-  <request name="CreateRegionFromBitmap" opcode="6">
-    <field type="REGION" name="region" />
-    <field type="PIXMAP" name="bitmap" />
-  </request>
-
-  <request name="CreateRegionFromWindow" opcode="7">
-    <field type="REGION"     name="region" />
-    <field type="WINDOW"     name="window" />
-    <field type="shape:KIND" name="kind" />
-    <pad bytes="3" />
-  </request>
-
-  <request name="CreateRegionFromGC" opcode="8">
-    <field type="REGION"   name="region" />
-    <field type="GCONTEXT" name="gc" />
-  </request>
-
-  <request name="CreateRegionFromPicture" opcode="9">
-    <field type="REGION"  name="region" />
-    <field type="PICTURE" name="picture" />
-  </request>
-
-  <request name="DestroyRegion" opcode="10">
-    <field type="REGION"  name="region" />
-  </request>
-
-  <request name="SetRegion" opcode="11">
-    <field type="REGION"    name="region" />
-    <list  type="RECTANGLE" name="rectangles" />
-  </request>
-
-  <request name="CopyRegion" opcode="12">
-    <field type="REGION" name="source" />
-    <field type="REGION" name="destination" />
-  </request>
-
-  <request name="UnionRegion" opcode="13">
-    <field type="REGION" name="source1" />
-    <field type="REGION" name="source2" />
-    <field type="REGION" name="destination" />
-  </request>
-
-  <request name="IntersectRegion" opcode="14">
-    <field type="REGION" name="source1" />
-    <field type="REGION" name="source2" />
-    <field type="REGION" name="destination" />
-  </request>
-
-  <request name="SubtractRegion" opcode="15">
-    <field type="REGION" name="source1" />
-    <field type="REGION" name="source2" />
-    <field type="REGION" name="destination" />
-  </request>
-
-  <request name="InvertRegion" opcode="16">
-    <field type="REGION"    name="source" />
-    <field type="RECTANGLE" name="bounds" />
-    <field type="REGION"    name="destination" />
-  </request>
-
-  <request name="TranslateRegion" opcode="17">
-    <field type="REGION" name="region" />
-    <field type="INT16"  name="dx" />
-    <field type="INT16"  name="dy" />
-  </request>
-
-  <request name="RegionExtents" opcode="18"> 	
-    <field type="REGION" name="source" />
-    <field type="REGION" name="destination" />
-  </request>
-
-  <request name="FetchRegion" opcode="19">
-    <field type="REGION" name="region" />
-    <reply>
-      <pad bytes="1" />
-      <field type="RECTANGLE" name="extents" />
-      <pad bytes="16" />
-      <list  type="RECTANGLE" name="rectangles" />
-    </reply>
-  </request>
-
-  <request name="SetGCClipRegion" opcode="20">
-    <field type="GCONTEXT" name="gc" />
-    <field type="REGION"   name="region" />
-    <field type="INT16"    name="x_origin" />
-    <field type="INT16"    name="y_origin" />
-  </request>
-
-  <request name="SetWindowShapeRegion" opcode="21">
-    <field type="WINDOW"     name="dest" />
-    <field type="shape:KIND" name="dest_kind" />
-    <pad bytes="3" />
-    <field type="INT16"      name="x_offset" />
-    <field type="INT16"      name="y_offset" />
-    <field type="REGION"     name="region" />
-  </request>
-
-  <request name="SetPictureClipRegion" opcode="22">
-    <field type="PICTURE" name="picture" />
-    <field type="REGION"  name="region" />
-    <field type="INT16"   name="x_origin" />
-    <field type="INT16"   name="y_origin" />
-  </request>
-
-  <request name="SetCursorName" opcode="23">
-    <field type="CURSOR" name="cursor" />
-    <field type="CARD16" name="nbytes" />
-    <pad bytes="2" />
-    <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
-  </request>
-
-  <request name="GetCursorName" opcode="24">
-    <field type="CURSOR" name="cursor" />
-    <reply>
-      <pad bytes="1" />
-      <field type="ATOM"   name="atom" />
-      <field type="CARD16" name="nbytes" />
-      <pad bytes="18" />
-      <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
-    </reply>
-  </request>
-
-  <request name="GetCursorImageAndName" opcode="25">
-    <reply>
-      <pad bytes="1" />
-      <field type="INT16"  name="x" />
-      <field type="INT16"  name="y" />
-      <field type="CARD16" name="width" />
-      <field type="CARD16" name="height" />
-      <field type="CARD16" name="xhot" />
-      <field type="CARD16" name="yhot" />
-      <field type="CARD32" name="cursor_serial" />
-      <field type="ATOM"   name="cursor_atom" />
-      <field type="CARD16" name="nbytes" />
-      <pad bytes="2" />
-      <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
-      <list  type="CARD32" name="cursor_image">
-        <op op="*">
-          <fieldref>width</fieldref>
-          <fieldref>height</fieldref>
-        </op>
-      </list>
-    </reply>
-  </request>
-
-  <request name="ChangeCursor" opcode="26">
-    <field type="CURSOR" name="source" />
-    <field type="CURSOR" name="destination" />
-  </request>
-
-  <request name="ChangeCursorByName" opcode="27">
-    <field type="CURSOR" name="src" />
-    <field type="CARD16" name="nbytes" />
-    <pad bytes="2" />
-    <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
-  </request>
-
-  <!-- Version 3 -->
-  <request name="ExpandRegion" opcode="28">
-    <field type="REGION" name="source" />
-    <field type="REGION" name="destination" />
-    <field type="CARD16" name="left" />
-    <field type="CARD16" name="right" />
-    <field type="CARD16" name="top" />
-    <field type="CARD16" name="bottom" />
-  </request>
-  
-  <!-- Version 4 -->
-  <request name="HideCursor" opcode="29">
-    <field type="WINDOW" name="window" />
-  </request>
-
-  <request name="ShowCursor" opcode="30">
-    <field type="WINDOW" name="window" />
-  </request>
-</xcb>
diff --git a/src/extensions/xinerama.xml b/src/extensions/xinerama.xml
deleted file mode 100644
index 2566787..0000000
--- a/src/extensions/xinerama.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xinerama" extension-xname="XINERAMA" extension-name="Xinerama">
-
-    <!-- Version 1.1 -->
-
-    <import>xproto</import>
-
-    <struct name="ScreenInfo">
-        <field type="INT16" name="x_org" />
-        <field type="INT16" name="y_org" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-    </struct>
-
-    <request name="QueryVersion" opcode="0">
-        <field type="CARD8" name="major" />
-        <field type="CARD8" name="minor" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="major" />
-            <field type="CARD16" name="minor" />
-        </reply>
-    </request>
-
-    <request name="GetState" opcode="1">
-        <field type="WINDOW" name="window" />
-        <reply>
-            <field type="BYTE" name="state" />
-            <field type="WINDOW" name="window" />
-        </reply>
-    </request>
-
-    <request name="GetScreenCount" opcode="2">
-        <field type="WINDOW" name="window" />
-        <reply>
-            <field type="BYTE" name="screen_count" />
-            <field type="WINDOW" name="window" />
-        </reply>
-    </request>
-
-    <request name="GetScreenSize" opcode="3">
-        <field type="WINDOW" name="window" />
-        <field type="SCREEN" name="screen" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="width" />
-            <field type="CARD32" name="height" />
-            <field type="WINDOW" name="window" />
-            <field type="SCREEN" name="screen" />
-        </reply>
-    </request>
-
-    <request name="IsActive" opcode="4">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="state" />
-        </reply>
-    </request>
-
-    <request name="QueryScreens" opcode="5">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="number" />
-            <pad bytes="20" />
-            <list type="ScreenInfo" name="screen_info">
-                <fieldref>number</fieldref>
-            </list>
-        </reply>
-    </request>
-
-</xcb>
diff --git a/src/extensions/xprint.xml b/src/extensions/xprint.xml
deleted file mode 100644
index 11cd7c0..0000000
--- a/src/extensions/xprint.xml
+++ /dev/null
@@ -1,326 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2005 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xprint" extension-xname="XpExtension" extension-name="XP">
-    <!-- Conforms to XPRINT 1.0 -->
-
-    <import>xproto</import>
-    
-    <!-- Types -->
-    <struct name="PRINTER">
-        <field type="CARD32" name="nameLen" />
-        <list type="STRING8" name="name">
-            <fieldref>nameLen</fieldref>
-        </list>
-        <!-- Padding -->
-        <field type="CARD32" name="descLen" />
-        <list type="STRING8" name="description">
-            <fieldref>descLen</fieldref>
-        </list>
-        <!-- More padding -->
-    </struct>
-
-    <!--<typedef oldname="CARD32" newname="PCONTEXT" />-->
-    <xidtype name="PCONTEXT" />
-    <typedef oldname="char" newname="STRING8" />
-
-    <!-- "PrintGetDocumentData" -->
-    <enum name="GetDoc">
-        <item name="Finished"><value>0</value></item>
-            <item name="SecondConsumer"><value>1</value></item>
-    </enum>
-
-    <!-- Event Mask ("PrintSelectInput") -->
-    <enum name="EvMask">
-        <item name="NoEventMask"><value>0x00000000</value></item>
-        <item name="PrintMask"><value>0x00000001</value></item>
-        <item name="AttributeMask"><value>0x00000002</value></item>
-    </enum>
-
-    <!-- "PrintNotify" detail -->
-    <enum name="Detail">
-        <item name="StartJobNotify"><value>1</value></item>
-        <item name="EndJobNotify"><value>2</value></item>
-        <item name="StartDocNotify"><value>3</value></item>
-        <item name="EndDocNotify"><value>4</value></item>
-        <item name="StartPageNotify"><value>5</value></item>
-        <item name="EndPageNotify"><value>6</value></item>
-    </enum>
-
-    <!-- "AttributeNotify" detail -->
-    <enum name="Attr">
-        <item name="JobAttr"><value>1</value></item>
-        <item name="DocAttr"><value>2</value></item>
-        <item name="PageAttr"><value>3</value></item>
-        <item name="PrinterAttr"><value>4</value></item>
-        <item name="ServerAttr"><value>5</value></item>
-        <item name="MediumAttr"><value>6</value></item>
-        <item name="SpoolerAttr"><value>7</value></item>
-    </enum>
-    
-    
-    <!-- Requests -->
-    <request name="PrintQueryVersion" opcode="0">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="major_version" />
-            <field type="CARD16" name="minor_version" />
-        </reply>
-    </request>
-
-    <request name="PrintGetPrinterList" opcode="1">
-        <field type="CARD32" name="printerNameLen" />
-        <field type="CARD32" name="localeLen" />
-        <list type="STRING8" name="printer_name">
-            <fieldref>printerNameLen</fieldref>
-        </list>
-        <!-- There's some padding in here... -->
-        <list type="STRING8" name="locale">
-            <fieldref>localeLen</fieldref>
-        </list>
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="listCount" />
-            <pad bytes="20" />
-            <list type="PRINTER" name="printers">
-                <fieldref>listCount</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="PrintRehashPrinterList" opcode="20" />
-
-    <request name="CreateContext" opcode="2">
-        <field type="CARD32" name="context_id" />
-        <field type="CARD32" name="printerNameLen" />
-        <field type="CARD32" name="localeLen" />
-        <list type="STRING8" name="printerName">
-            <fieldref>printerNameLen</fieldref>
-        </list>
-        <!-- padding -->
-        <list type="STRING8" name="locale">
-            <fieldref>localeLen</fieldref>
-        </list>
-    </request>
-
-    <request name="PrintSetContext" opcode="3">
-        <field type="CARD32" name="context" />
-    </request>
-
-    <request name="PrintGetContext" opcode="4">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="context" />
-        </reply>
-    </request>
-
-    <request name="PrintDestroyContext" opcode="5">
-        <field type="CARD32" name="context" />
-    </request>
-
-    <request name="PrintGetScreenOfContext" opcode="6">
-        <reply>
-            <pad bytes="1" />
-            <field type="WINDOW" name="root" />
-        </reply>
-    </request>
-
-    <request name="PrintStartJob" opcode="7">
-        <field type="CARD8" name="output_mode"/>
-    </request>
-
-    <request name="PrintEndJob" opcode="8">
-        <field type="BOOL"  name="cancel" />
-    </request>
-
-    <request name="PrintStartDoc" opcode="9">
-        <field type="CARD8" name="driver_mode" />
-    </request>
-
-    <request name="PrintEndDoc" opcode="10">
-        <field type="BOOL" name="cancel" />
-    </request>
-
-    <request name="PrintPutDocumentData" opcode="11">
-        <field type="DRAWABLE" name="drawable" />
-        <field type="CARD32" name="len_data" />
-        <field type="CARD16" name="len_fmt" />
-        <field type="CARD16" name="len_options" />
-        <list type="BYTE" name="data">
-            <fieldref>len_data</fieldref>
-        </list>
-        <!-- padding -->
-        <list type="STRING8" name="doc_format" />
-        <!-- padding -->
-        <list type="STRING8" name="options" />
-    </request>
-
-    <request name="PrintGetDocumentData" opcode="12">
-        <field type="PCONTEXT" name="context" />
-        <field type="CARD32" name="max_bytes" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="status_code" />
-            <field type="CARD32" name="finished_flag" />
-            <field type="CARD32" name="dataLen" />
-            <pad bytes="12" />
-            <list type="BYTE" name="data">
-                <fieldref>dataLen</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="PrintStartPage" opcode="13">
-        <field type="WINDOW" name="window" />
-    </request>
-
-    <request name="PrintEndPage" opcode="14">
-        <field type="BOOL" name="cancel" />
-        <pad bytes="3" />
-    </request>
-
-    <request name="PrintSelectInput" opcode="15">
-        <field type="PCONTEXT" name="context" />
-        <valueparam value-mask-type="CARD32"
-                    value-mask-name="event_mask"
-                    value-list-name="event_list" />
-    </request>
-
-    <request name="PrintInputSelected" opcode="16">
-        <field type="PCONTEXT" name="context" />
-        <reply>
-            <pad bytes="1" />
-            <valueparam value-mask-type="CARD32"
-                            value-mask-name="event_mask"
-                            value-list-name="event_list" />
-            <valueparam value-mask-type="CARD32"
-                            value-mask-name="all_events_mask"
-                            value-list-name="all_events_list" />
-        </reply>
-    </request>
-
-    <request name="PrintGetAttributes" opcode="17">
-        <field type="PCONTEXT" name="context" />
-        <field type="CARD8" name="pool" />
-        <pad bytes="3" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="stringLen" />
-            <pad bytes="20" />
-            <field type="STRING8" name="attributes" />
-        </reply>
-    </request>
-
-    <request name="PrintGetOneAttributes" opcode="19">
-        <field type="PCONTEXT" name="context" />
-        <field type="CARD32" name="nameLen" />
-        <field type="CARD8" name="pool" />
-        <pad bytes="3" />
-        <list type="STRING8" name="name">
-            <fieldref>nameLen</fieldref>
-        </list>
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="valueLen" />
-            <pad bytes="20" />
-            <list type="STRING8" name="value">
-                <fieldref>valueLen</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="PrintSetAttributes" opcode="18">
-        <field type="PCONTEXT" name="context" />
-        <field type="CARD32" name="stringLen" />
-        <field type="CARD8" name="pool" />
-        <field type="CARD8" name="rule" />
-        <pad bytes="2" />
-        <list type="STRING8" name="attributes" />
-    </request>
-
-    <request name="PrintGetPageDimensions" opcode="21">
-        <field type="PCONTEXT" name="context" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="width" />
-            <field type="CARD16" name="height" />
-            <field type="CARD16" name="offset_x" />
-            <field type="CARD16" name="offset_y" />
-            <field type="CARD16" name="reproducible_width" />
-            <field type="CARD16" name="reproducible_height" />
-        </reply>
-    </request>
-
-    <request name="PrintQueryScreens" opcode="22">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="listCount" />
-            <pad bytes="20" />
-            <list type="WINDOW" name="roots">
-                <fieldref>listCount</fieldref>
-            </list>
-            <!-- There may be a WINDOW rootWindow here... -->
-        </reply>
-    </request>
-
-    <request name="PrintSetImageResolution" opcode="23">
-        <field type="PCONTEXT" name="context" />
-        <field type="CARD16" name="image_resolution" />
-        <reply>
-            <field type="BOOL" name="status" />
-            <field type="CARD16" name="previous_resolutions" />
-        </reply>
-    </request>
-
-    <request name="PrintGetImageResolution" opcode="24">
-        <field type="PCONTEXT" name="context" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="image_resolution" />
-        </reply>
-    </request>
-
-
-    <!-- Events -->
-    <event name="Notify" number="0">
-        <field type="CARD8" name="detail" />
-        <field type="PCONTEXT" name="context" />
-        <field type="BOOL" name="cancel" />
-    </event>
-
-    <event name="AttributNotify" number="1">
-        <field type="CARD8" name="detail" />
-        <field type="PCONTEXT" name="context" />
-    </event>
-
-    <!-- Errors -->
-    <error name="BadContext" number="0" />
-    <error name="BadSequence" number="1" />
-
-</xcb>
-
diff --git a/src/extensions/xtest.xml b/src/extensions/xtest.xml
deleted file mode 100644
index 72adf0b..0000000
--- a/src/extensions/xtest.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Ian Osgood
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xtest" extension-xname="XTEST" extension-name="Test">
-    <!-- Conforms to XTEST 2.1 -->
-
-    <import>xproto</import>
-    
-    <!-- Requests -->
-    <request name="GetVersion" opcode="0">
-        <field type="CARD8"  name="major_version" />
-        <pad bytes="1" />
-        <field type="CARD16" name="minor_version" />
-        <reply>
-            <field type="CARD8"  name="major_version" />
-            <field type="CARD16" name="minor_version" />
-        </reply>
-    </request>
-
-    <enum name="Cursor">
-        <item name="None">   <value>0</value></item>
-        <item name="Current"><value>1</value></item>
-    </enum>
-
-    <request name="CompareCursor" opcode="1">
-        <field type="WINDOW" name="window" />
-        <field type="CURSOR" name="cursor" />
-        <reply>
-            <field type="BOOL" name="same" />
-        </reply>
-    </request>
-    
-    <!-- There are several ways to use the FakeInput request:
-            1. Simulate a keypress:
-                type   = XCBKeyPress or XCBKeyRelease
-                detail = keycode
-            2. Simulate a button:
-                type   = XCBButtonPress or XCBButtonRelease
-                detail = enum XCBButton (1..5)
-            3. Simulate mouse motion:
-                type   = XCBMotionNotify
-                detail = 0 or 1
-                window = XCBNone or a root window id
-                rootX,
-                rootY  = position (relative if detail==1)
-
-        Version 2.2 adds support for the XInput extension:
-            4. Simulate a device keypress
-            5. Simulate a device button
-            6. Simulate a proximity event
-            7. Simulate a device motion event
-                [These are not yet supported, since we would also need to
-                 send the variable-length state of the axes.]
-
-        In each case, time is set to a delay in milliseconds.
-    -->
-
-    <request name="FakeInput" opcode="2">
-        <field type="BYTE"   name="type" />
-        <field type="BYTE"   name="detail" />
-        <pad bytes="2" />
-        <field type="CARD32" name="time" />
-        <field type="WINDOW" name="window" />
-        <pad bytes="8" />
-        <field type="CARD16" name="rootX" />
-        <field type="CARD16" name="rootY" />
-        <pad bytes="7" />
-        <!-- Version 2.2: XInput device -->
-        <field type="CARD8"  name="deviceid" />
-        <!-- Version 2.2: optional axes state here -->
-    </request>
-
-    <request name="GrabControl" opcode="3">
-        <field type="BOOL" name="impervious" />
-        <pad bytes="3" />
-    </request>
-    
-    <!-- No events or errors -->
-
-</xcb>
\ No newline at end of file
diff --git a/src/extensions/xv.xml b/src/extensions/xv.xml
deleted file mode 100644
index b232dea..0000000
--- a/src/extensions/xv.xml
+++ /dev/null
@@ -1,430 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xv" extension-xname="XVideo" extension-name="Xv">
-    <import>xproto</import>
-    <import>shm</import>
-    <!-- Implements version 2.2 of XV -->
-
-    <!-- XIDs -->
-    <xidtype name="PORT" />
-    <xidtype name="ENCODING" />
-
-    <enum name="Type">
-        <item name="InputMask"><value>0x00000001</value></item>
-        <item name="OutputMask"><value>0x00000002</value></item>
-        <item name="VideoMask"><value>0x00000004</value></item>
-        <item name="StillMask"><value>0x00000008</value></item>
-        <item name="ImageMask"><value>0x00000010</value></item>
-    </enum>
-
-    <enum name="ImageFormatInfoType">
-        <item name="RGB" />
-        <item name="YUV" />
-    </enum>
-
-    <enum name="ImageFormatInfoFormat">
-        <item name="Packed" />
-        <item name="Planar" />
-    </enum>
-
-    <enum name="AttributeFlag">
-        <item name="Gettable"><value>0x01</value></item>
-        <item name="Settable"><value>0x02</value></item>
-    </enum>
-    
-    <struct name="Rational">
-        <field type="INT32" name="numerator" />
-        <field type="INT32" name="denominator" />
-    </struct>
-
-    <struct name="AdaptorInfo">
-        <field type="PORT" name="base_id" />
-        <field type="CARD16" name="name_size" />
-        <field type="CARD16" name="num_ports" />
-        <field type="CARD16" name="num_formats" />
-        <field type="CARD8" name="type" />
-        <field type="CARD8" name="pad" />
-        <list type="char" name="name">
-            <fieldref>name_size</fieldref>
-        </list>
-        <list type="Format" name="formats">
-            <fieldref>num_formats</fieldref>
-        </list>
-
-    </struct>
-
-    <struct name="EncodingInfo">
-        <field type="ENCODING" name="encoding" />
-        <field type="CARD16" name="name_size" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <field type="Rational" name="rate" />
-        <!--
-        Xvproto.h has a padding CARD16 here but the name
-        overlaps.
-        -->
-        <list type="char" name="name">
-            <fieldref>name_size</fieldref>
-        </list>
-    </struct>
-
-    <struct name="Format">
-        <field type="VISUALID" name="visual" />
-        <field type="CARD8" name="depth" />
-    </struct>
-
-    <struct name="Image">
-        <field type="CARD32" name="id" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <field type="CARD32" name="data_size" />
-        <field type="CARD32" name="num_planes" />
-        <list type="CARD32" name="pitches">
-            <fieldref>num_planes</fieldref>
-        </list>
-        <list type="CARD32" name="offsets">
-            <fieldref>num_planes</fieldref>
-        </list>
-        <list type="CARD8" name="data">
-            <fieldref>data_size</fieldref>
-        </list>
-        <!-- Some XPointer "obdata" for SHM use-->
-    </struct>
-    
-    <struct name="AttributeInfo">
-        <field type="CARD32" name="flags" />
-        <field type="INT32" name="min" />
-        <field type="INT32" name="max" />
-        <field type="CARD32" name="size" />
-        <list type="char" name="name">
-            <fieldref>size</fieldref>
-        </list>
-    </struct>
-
-    <struct name="ImageFormatInfo">
-        <field type="CARD32" name="id" />
-        <field type="CARD8" name="type" />
-        <field type="CARD8" name="byte_order" />
-        <field type="CARD16" name="pad1" />
-        <list type="CARD8" name="guid">
-            <value>16</value>
-        </list>
-        <field type="CARD8" name="bpp" />
-        <field type="CARD8" name="num_planes" />
-        <field type="CARD16" name="pad2" />
-        <field type="CARD8" name="depth" />
-        <field type="CARD8" name="pad3" />
-        <field type="CARD16" name="pad4" />
-        <field type="CARD32" name="red_mask" />
-        <field type="CARD32" name="green_mask" />
-        <field type="CARD32" name="blue_mask" />
-        <field type="CARD8" name="format" />
-        <field type="CARD8" name="pad5" />
-        <field type="CARD16" name="pad6" />
-        <field type="CARD32" name="y_sample_bits" />
-        <field type="CARD32" name="u_sample_bits" />
-        <field type="CARD32" name="v_sample_bits" />
-        <field type="CARD32" name="vhorz_y_period" />
-        <field type="CARD32" name="vhorz_u_period" />
-        <field type="CARD32" name="vhorz_v_period" />
-        <field type="CARD32" name="vvert_y_period" />
-        <field type="CARD32" name="vvert_u_period" />
-        <field type="CARD32" name="vvert_v_period" />
-        <list type="CARD8" name="vcomp_order">
-            <value>32</value>
-        </list>
-        <field type="CARD8" name="vscanline_order" />
-        <field type="CARD8" name="vpad7" />
-        <field type="CARD16" name="vpad8" />
-        <field type="CARD32" name="vpad9" />
-        <field type="CARD32" name="vpad10" />
-    </struct>
-
-
-    <!-- Errors -->
-    <error name="BadPort" number="0"/>
-    <error name="BadEncoding" number="1"/>
-    <error name="BadControl" number="2"/>
-
-    <!-- Events -->
-    <event name="VideoNotify" number="0">
-        <field type="BYTE" name="reason" />
-        <field type="TIMESTAMP" name="time" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="PORT" name="port" />
-    </event>
-
-    <event name="PortNotify" number="1">
-        <pad bytes="1" />
-        <field type="TIMESTAMP" name="time" />
-        <field type="PORT" name="port" />
-        <field type="ATOM" name="attribute" />
-        <field type="INT32" name="value" />
-    </event>
-    
-    
-    <!-- Requests -->
-    <request name="QueryExtension" opcode="0">
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="major" />
-            <field type="CARD16" name="minor" />
-        </reply>
-    </request>
-
-    <request name="QueryAdaptors" opcode="1">
-        <field type="WINDOW" name="window" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="num_adaptors" />
-            <pad bytes="22" />
-            <list type="AdaptorInfo" name="info">
-                <fieldref>num_adaptors</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="QueryEncodings" opcode="2">
-        <field type="PORT" name="port" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="num_encodings" />
-            <!--
-            In Xvproto.h this padding is 24 bytes
-            in actuality it is 22 bytes
-            -->
-            <pad bytes="22" />
-            <list type="EncodingInfo" name="info">
-                <fieldref>num_encodings</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="GrabPort" opcode="3">
-        <field type="PORT" name="port" />
-        <field type="TIMESTAMP" name="time" />
-        <reply>
-            <field type="BYTE" name="result" />
-        </reply>
-    </request>
-
-    <request name="UngrabPort" opcode="4">
-        <field type="PORT" name="port" />
-        <field type="TIMESTAMP" name="time" />
-    </request>
-
-    <request name="PutVideo" opcode="5">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="INT16" name="vid_x" />
-        <field type="INT16" name="vid_y" />
-        <field type="CARD16" name="vid_w" />
-        <field type="CARD16" name="vid_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-    </request>
-
-    <request name="PutStill" opcode="6">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="INT16" name="vid_x" />
-        <field type="INT16" name="vid_y" />
-        <field type="CARD16" name="vid_w" />
-        <field type="CARD16" name="vid_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-    </request>
-
-    <request name="GetVideo" opcode="7">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="INT16" name="vid_x" />
-        <field type="INT16" name="vid_y" />
-        <field type="CARD16" name="vid_w" />
-        <field type="CARD16" name="vid_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-    </request>
-
-    <request name="GetStill" opcode="8">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="INT16" name="vid_x" />
-        <field type="INT16" name="vid_y" />
-        <field type="CARD16" name="vid_w" />
-        <field type="CARD16" name="vid_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-    </request>
-
-    <request name="StopVideo" opcode="9">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-    </request>
-
-    <request name="SelectVideoNotify" opcode="10">
-        <field type="DRAWABLE" name="drawable" />
-        <field type="BOOL" name="onoff" />
-    </request>
-
-    <request name="SelectPortNotify" opcode="11">
-        <field type="DRAWABLE" name="drawable" />
-        <field type="BOOL" name="onoff" />
-    </request>
-
-    <request name="QueryBestSize" opcode="12">
-        <field type="PORT" name="port" />
-        <field type="CARD16" name="vid_w" />
-        <field type="CARD16" name="vid_h" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-        <field type="BOOL" name="motion" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="actual_width" />
-            <field type="CARD16" name="actual_height" />
-        </reply>
-    </request>
-
-    <request name="SetPortAttribute" opcode="13">
-        <field type="PORT" name="port" />
-        <field type="ATOM" name="attribute" />
-        <field type="INT32" name="value" />
-    </request>
-
-    <request name="GetPortAttribute" opcode="14">
-        <field type="PORT" name="port" />
-        <field type="ATOM" name="attribute" />
-        <reply>
-            <pad bytes="1" />
-            <field type="INT32" name="value" />
-        </reply>
-    </request>
-
-    <!-- Not in the docs beyond this point :( -->
-
-    <request name="QueryPortAttributes" opcode="15">
-        <field type="PORT" name="port" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num_attributes" />
-            <field type="CARD32" name="text_size" />
-            <pad bytes="16" />
-            <list type="AttributeInfo" name="attributes">
-                <fieldref>num_attributes</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="ListImageFormats" opcode="16">
-        <field type="PORT" name="port" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num_formats" />
-            <pad bytes="20" />
-            <list type="ImageFormatInfo" name="format">
-                <fieldref>num_formats</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="QueryImageAttributes" opcode="17">
-        <field type="PORT" name="port" />
-        <field type="CARD32" name="id" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num_planes" />
-            <field type="CARD32" name="data_size" />
-            <field type="CARD16" name="width" />
-            <field type="CARD16" name="height" />
-            <pad bytes="12" />
-            <list type="CARD32" name="pitches">
-                <fieldref>num_planes</fieldref>
-            </list>
-            <list type="CARD32" name="offsets">
-                <fieldref>num_planes</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="PutImage" opcode="18">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="CARD32" name="id" />
-        <field type="INT16" name="src_x" />
-        <field type="INT16" name="src_y" />
-        <field type="CARD16" name="src_w" />
-        <field type="CARD16" name="src_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <localfield type="CARD32" name="data_size" />
-        <list type="CARD8" name="data">
-            <fieldref>data_size</fieldref>
-        </list>
-    </request>
-
-    <request name="ShmPutImage" opcode="19">
-        <field type="PORT" name="port" />
-        <field type="DRAWABLE" name="drawable" />
-        <field type="GCONTEXT" name="gc" />
-        <field type="SEG" name="shmseg" />
-        <field type="CARD32" name="id" />
-        <field type="CARD32" name="offset" />
-        <field type="INT16" name="src_x" />
-        <field type="INT16" name="src_y" />
-        <field type="CARD16" name="src_w" />
-        <field type="CARD16" name="src_h" />
-        <field type="INT16" name="drw_x" />
-        <field type="INT16" name="drw_y" />
-        <field type="CARD16" name="drw_w" />
-        <field type="CARD16" name="drw_h" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <field type="CARD8" name="send_event" />
-    </request>
-</xcb>
diff --git a/src/extensions/xvmc.xml b/src/extensions/xvmc.xml
deleted file mode 100644
index e2eb04d..0000000
--- a/src/extensions/xvmc.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2006 Jeremy Kolb.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the names of the authors or their
-institutions shall not be used in advertising or otherwise to promote the
-sale, use or other dealings in this Software without prior written
-authorization from the authors.
--->
-
-<xcb header="xvmc" extension-xname="XVideo-MotionCompensation" extension-name="XvMC">
-    <import>xv</import>
-
-    <xidtype name="CONTEXT" />
-    <xidtype name="SURFACE" />
-    <xidtype name="SUBPICTURE" />
-
-    <struct name="SurfaceInfo">
-        <field type="SURFACE" name="id" />
-        <field type="CARD16" name="chroma_format" />
-        <field type="CARD16" name="pad0" />
-        <field type="CARD16" name="max_width" />
-        <field type="CARD16" name="max_height" />
-        <field type="CARD16" name="subpicture_max_width" />
-        <field type="CARD16" name="subpicture_max_height" />
-        <field type="CARD32" name="mc_type" />
-        <field type="CARD32" name="flags" />
-    </struct>
-    
-    <request name="QueryVersion" opcode="0"> 
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="major" />
-            <field type="CARD32" name="minor" />
-        </reply>
-    </request> 
-
-    <request name="ListSurfaceTypes" opcode="1">
-        <field type="PORT" name="port_id" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num" />
-            <pad bytes="20" />
-            <list type="SurfaceInfo" name="surfaces">
-                <fieldref>num</fieldref>
-            </list>
-        </reply>
-    </request>
-
-    <request name="CreateContext" opcode="2">
-        <field type="CONTEXT" name="context_id" />
-        <field type="PORT" name="port_id" />
-        <field type="SURFACE" name="surface_id" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <field type="CARD32" name="flags" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="width_actual" />
-            <field type="CARD16" name="height_actual" />
-            <field type="CARD32" name="flags_return" />
-            <pad bytes="20" />
-            <list type="CARD32" name="priv_data" />
-        </reply>
-    </request>
-
-    <request name="DestroyContext" opcode="3">
-        <field type="CONTEXT" name="context_id" />
-    </request>
-    
-    <request name="CreateSurface" opcode="4">
-        <field type="SURFACE" name="surface_id" />
-        <field type="CONTEXT" name="context_id" />
-        <reply>
-            <pad bytes="1" />
-            <pad bytes="24" />
-            <list type="CARD32" name="priv_data" />
-        </reply>
-    </request>
-
-    <request name="DestroySurface" opcode="5">
-        <field type="SURFACE" name="surface_id" />
-    </request>
-
-    <request name="CreateSubpicture" opcode="6">
-        <field type="SUBPICTURE" name="subpicture_id" />
-        <field type="CONTEXT" name="context" />
-        <field type="CARD32" name="xvimage_id" />
-        <field type="CARD16" name="width" />
-        <field type="CARD16" name="height" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD16" name="width_actual" />
-            <field type="CARD16" name="height_actual" />
-            <field type="CARD16" name="num_palette_entries" />
-            <field type="CARD16" name="entry_bytes" />
-            <list type="CARD8" name="component_order">
-                <value>4</value>
-            </list>
-            <pad bytes="12" />
-            <list type="CARD32" name="priv_data" />
-        </reply>
-    </request>
-
-    <request name="DestroySubpicture" opcode="7">
-        <field type="SUBPICTURE" name="subpicture_id" />
-    </request>
-
-    <request name="ListSubpictureTypes" opcode="8">
-        <field type="PORT" name="port_id" />
-        <field type="SURFACE" name="surface_id" />
-        <reply>
-            <pad bytes="1" />
-            <field type="CARD32" name="num" />
-            <pad bytes="20" />
-            <list type="ImageFormatInfo" name="types">
-                <fieldref>num</fieldref>
-            </list>
-        </reply>    
-    </request>
-
-</xcb> 
diff --git a/src/glx.xml b/src/glx.xml
new file mode 100644
index 0000000..5f8b5e6
--- /dev/null
+++ b/src/glx.xml
@@ -0,0 +1,1466 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<!--
+Note that on X.org servers before 6.9 (and probably others as well) the length
+field in the reply is computed incorrectly for GetFBConfigs and
+VendorPrivateWithReply vendor_code 0x10004 (GetFBConfigsSGIX). For these
+requests the reply structure begins:
+	<pad bytes="1" />
+	<field type="CARD32" name="numVisuals" />
+	<field type="CARD32" name="numProps" />
+The correct value for the length field is
+	numVisuals * numProps * 2
+but on broken servers the "* 2" was missing. A workaround that is correct for
+all implementations is to rewrite the length field on receipt on the client
+side, using the expression above.
+
+The patch that fixed this server bug in X.org CVS is here:
+	http://cvs.freedesktop.org/xorg/xserver/xorg/GL/glx/glxcmds.c?r1=1.6&r2=1.7
+-->
+
+<xcb header="glx" extension-xname="GLX" extension-name="Glx">
+	<!-- target support: 1.3 -->
+
+	<import>xproto</import>
+
+	<xidtype name="PIXMAP" />
+	<xidtype name="CONTEXT" />
+	<xidtype name="PBUFFER" />
+	<xidtype name="WINDOW" />
+        <xidtype name="FBCONFIG" />
+
+        <xidunion name="DRAWABLE">
+            <type>xproto:WINDOW</type>
+            <type>PBUFFER</type>
+            <type>glx:PIXMAP</type>
+            <type>glx:WINDOW</type>
+        </xidunion>
+
+	<typedef oldname="float" newname="FLOAT32" />
+	<typedef oldname="double" newname="FLOAT64" />
+        <typedef oldname="CARD32" newname="BOOL32" />
+        <typedef oldname="CARD32" newname="CONTEXT_TAG" />
+	    
+	<!-- Errors -->
+	<error name="Generic" number="-1"> <!-- FIXME: fake number -->
+		<field type="CARD32" name="bad_value" />
+		<field type="CARD16" name="minor_opcode" />
+		<field type="CARD8" name="major_opcode" />
+		<pad bytes="21" />
+	</error>
+
+	<errorcopy name="BadContext" number="0" ref="Generic" />
+	<errorcopy name="BadContextState" number="1" ref="Generic" />
+	<errorcopy name="BadDrawable" number="2" ref="Generic" />
+	<errorcopy name="BadPixmap" number="3" ref="Generic" />
+	<errorcopy name="BadContextTag" number="4" ref="Generic" />
+	<errorcopy name="BadCurrentWindow" number="5" ref="Generic" />
+	<errorcopy name="BadRenderRequest" number="6" ref="Generic" />
+	<errorcopy name="BadLargeRequest" number="7" ref="Generic" />
+	<errorcopy name="UnsupportedPrivateRequest" number="8" ref="Generic" />
+	<errorcopy name="BadFBConfig" number="9" ref="Generic" />
+	<errorcopy name="BadPbuffer" number="10" ref="Generic" />
+	<errorcopy name="BadCurrentDrawable" number="11" ref="Generic" />
+	<errorcopy name="BadWindow" number="12" ref="Generic" />
+
+	<!-- Events -->
+	<event name="PbufferClobber" number="0">
+		<field type="CARD16" name="event_type" />
+		<field type="CARD16" name="draw_type" />
+		<field type="glx:DRAWABLE" name="drawable" />
+		<field type="CARD32" name="b_mask" />
+		<field type="CARD16" name="aux_buffer" />
+		<field type="CARD16" name="x" />
+		<field type="CARD16" name="y" />
+		<field type="CARD16" name="width" />
+		<field type="CARD16" name="height" />
+		<field type="CARD16" name="count" />
+		<pad bytes="4" />
+	</event>
+
+	<!-- enums for PbufferClobber event/draw type -->
+	<enum name="PBCET">
+		<item name="Damaged">
+			<value>0x8017</value>
+		</item>
+		<item name="Saved">
+			<value>0x8018</value>
+		</item>
+	</enum>
+
+	<enum name="PBCDT">
+		<item name="Window">
+			<value>0x8019</value>
+		</item>
+		<item name="Pbuffer">
+			<value>0x801A</value>
+		</item>
+	</enum>
+
+	<!-- Requests -->
+	<request name="Render" opcode="1" combine-adjacent="true">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<list type="BYTE" name="data" />
+	</request>
+
+	<request name="RenderLarge" opcode="2">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD16" name="request_num" />
+		<field type="CARD16" name="request_total" />
+		<field type="CARD32" name="data_len" />
+		<list type="BYTE" name="data">
+		    <fieldref>data_len</fieldref>
+		</list>
+	</request>
+
+	<request name="CreateContext" opcode="3">
+		<field type="glx:CONTEXT" name="context" />
+		<field type="VISUALID" name="visual" />
+		<field type="CARD32" name="screen" />
+		<field type="glx:CONTEXT" name="share_list" />
+		<field type="BOOL" name="is_direct" />
+		<pad bytes="3" />
+	</request>
+
+	<request name="DestroyContext" opcode="4">
+		<field type="glx:CONTEXT" name="context" />
+	</request>
+
+	<request name="MakeCurrent" opcode="5">
+		<field type="glx:DRAWABLE" name="drawable" />
+		<field type="glx:CONTEXT" name="context" />
+		<field type="CONTEXT_TAG" name="old_context_tag" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CONTEXT_TAG" name="context_tag" />
+			<pad bytes="20" />
+		</reply>
+	</request>
+
+	<request name="IsDirect" opcode="6">
+		<field type="glx:CONTEXT" name="context" />
+		<reply>
+			<pad bytes="1" />
+			<field type="BOOL" name="is_direct" />
+			<pad bytes="23" />
+		</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="CONTEXT_TAG" name="context_tag" />
+	</request>
+
+	<request name="WaitX" opcode="9">
+		<field type="CONTEXT_TAG" name="context_tag" />
+	</request>
+
+	<request name="CopyContext" opcode="10">
+		<field type="glx:CONTEXT" name="src" />
+		<field type="glx:CONTEXT" name="dest" />
+		<field type="CARD32" name="mask" />
+		<field type="CONTEXT_TAG" name="src_context_tag" />
+	</request>
+
+	<!-- Enum for CopyContext: mask -->
+	<enum name="GC">
+		<item name="GL_CURRENT_BIT"><value>0x00000001</value></item>
+		<item name="GL_POINT_BIT"><value>0x00000002</value></item>
+		<item name="GL_LINE_BIT"><value>0x00000004</value></item>
+		<item name="GL_POLYGON_BIT"><value>0x00000008</value></item>
+		<item name="GL_POLYGON_STIPPLE_BIT"><value>0x00000010</value></item>
+		<item name="GL_PIXEL_MODE_BIT"><value>0x00000020</value></item>
+		<item name="GL_LIGHTING_BIT"><value>0x00000040</value></item>
+		<item name="GL_FOG_BIT"><value>0x00000080</value></item>
+		<item name="GL_DEPTH_BUFFER_BIT"><value>0x00000100</value></item>
+		<item name="GL_ACCUM_BUFFER_BIT"><value>0x00000200</value></item>
+		<item name="GL_STENCIL_BUFFER_BIT"><value>0x00000400</value></item>
+		<item name="GL_VIEWPORT_BIT"><value>0x00000800</value></item>
+		<item name="GL_TRANSFORM_BIT"><value>0x00001000</value></item>
+		<item name="GL_ENABLE_BIT"><value>0x00002000</value></item>
+		<item name="GL_COLOR_BUFFER_BIT"><value>0x00004000</value></item>
+		<item name="GL_HINT_BIT"><value>0x00008000</value></item>
+		<item name="GL_EVAL_BIT"><value>0x00010000</value></item>
+		<item name="GL_LIST_BIT"><value>0x00020000</value></item>
+		<item name="GL_TEXTURE_BIT"><value>0x00040000</value></item>
+		<item name="GL_SCISSOR_BIT"><value>0x00080000</value></item>
+		<item name="GL_ALL_ATTRIB_BITS"><value>0x000ffffff</value></item>
+	</enum>
+
+	<request name="SwapBuffers" opcode="11">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="glx:DRAWABLE" name="drawable" />
+	</request>
+
+	<request name="UseXFont" opcode="12">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="FONT" name="font" />
+		<field type="CARD32" name="first" />
+		<field type="CARD32" name="count" />
+		<field type="CARD32" name="list_base" />
+	</request>
+
+	<request name="CreateGLXPixmap" opcode="13">
+		<field type="CARD32" name="screen" />
+		<field type="VISUALID" name="visual" />
+		<field type="xproto:PIXMAP" name="pixmap" />
+		<field type="glx:PIXMAP" name="glx_pixmap" />
+	</request>
+
+        
+	<request name="GetVisualConfigs" opcode="14">
+		<field type="CARD32" name="screen" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="num_visuals" />
+			<field type="CARD32" name="num_properties" />
+                        <pad bytes="16" />
+                        <list type="CARD32" name="property_list" />
+		</reply>
+	</request>
+
+	<request name="DestroyGLXPixmap" opcode="15">
+		<field type="glx:PIXMAP" name="glx_pixmap" />
+	</request>
+
+	<!--
+	Context tag is not in the proto, should be part of the list of bytes
+	but every VendorPrivate and VendorPrivateWithReply request uses them
+	so it is safe to put them in.  That's how Mesa does it.
+	-->
+	<request name="VendorPrivate" opcode="16">
+		<field type="CARD32" name="vendor_code" />
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<list type="BYTE" name="data" />
+	</request>
+
+	<request name="VendorPrivateWithReply" opcode="17">
+		<field type="CARD32" name="vendor_code" />
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<list type="BYTE" name="data" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="retval" />
+			<list type="BYTE" name="data1">
+				<value>24</value>
+			</list>
+			<list type="BYTE" name="data2" />
+		</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 bytes="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="str_len" />
+			<pad bytes="16" />
+			<list type="CARD8" name="string">
+				<fieldref>str_len</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="ClientInfo" opcode="20">
+		<field type="CARD32" name="major_version" />
+		<field type="CARD32" name="minor_version" />
+		<field type="CARD32" name="str_len" />
+		<list type="CARD8" name="string">
+			<fieldref>str_len</fieldref>
+		</list>
+	</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="num_FB_configs" />
+			<field type="CARD32" name="num_properties" />
+                        <pad bytes="16" />
+                        <!--
+			<valueparam value-mask-type="CARD32"
+				value-mask-name="value_mask"
+                                value-list-name="value_list" />
+                            -->
+                        <list type="CARD32" name="property_list" />
+		</reply>
+	</request>
+
+	<request name="CreatePixmap" opcode="22">
+		<field type="CARD32" name="screen" />
+		<field type="CARD32" name="fbconfig" />
+		<field type="xproto:PIXMAP" name="pixmap" />
+		<field type="glx:PIXMAP" name="glx_pixmap" />
+		<field type="CARD32" name="num_attribs" />  
+	</request>
+
+	<request name="DestroyPixmap" opcode="23">
+		<field type="glx:PIXMAP" name="glx_pixmap" />
+	</request>
+
+	<request name="CreateNewContext" opcode="24">
+		<field type="glx:CONTEXT" name="context" />
+		<field type="CARD32" name="fbconfig" />
+		<field type="SCREEN" name="screen" />
+		<field type="CARD32" name="render_type" />
+		<field type="CARD32" name="share_list" />
+		<field type="BOOL" name="is_direct" />
+		<field type="CARD8" name="reserved1" />
+		<field type="CARD16" name="reserved2" />
+	</request>
+
+	<request name="QueryContext" opcode="25">
+		<field type="glx:CONTEXT" name="context" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="num_attributes"/>
+			<pad bytes="20" />
+			<valueparam value-mask-type="CARD32"
+				value-mask-name="value_mask"
+				value-list-name="value_list" />
+		</reply>
+	</request>
+
+	<request name="MakeContextCurrent" opcode="26">
+		<field type="CONTEXT_TAG" name="old_context_tag" />
+		<field type="glx:DRAWABLE" name="drawable" />
+		<field type="glx:DRAWABLE" name="read_drawable" />
+		<field type="glx:CONTEXT" name="context" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CONTEXT_TAG" name="context_tag" />
+			<pad bytes="20" />
+		</reply>
+	</request>
+
+	<request name="CreatePbuffer" opcode="27">
+		<field type="SCREEN" name="screen" />
+		<field type="FBCONFIG" name="fbconfig" />
+		<field type="PBUFFER" name="pbuffer" />
+		<field type="CARD32" name="num_attribs" />
+		<valueparam value-mask-type="CARD32"
+			value-mask-name="value_mask"
+			value-list-name="value_list" />
+	</request>
+
+	<request name="DestroyPbuffer" opcode="28">
+		<field type="PBUFFER" name="pbuffer" />
+	</request>
+
+	<request name="GetDrawableAttributes" opcode="29">
+		<field type="glx:DRAWABLE" name="drawable" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="num_attribs" />
+			<pad bytes="20" />
+			<valueparam value-mask-type="CARD32"
+				value-mask-name="value_mask"
+				value-list-name="value_list" />
+		</reply>
+	</request>
+
+	<request name="ChangeDrawableAttributes" opcode="30">
+		<field type="glx:DRAWABLE" name="drawable" />
+		<field type="CARD32" name="num_attribs" />
+		<valueparam value-mask-type="CARD32"
+			value-mask-name="value_mask"
+			value-list-name="value_list" />
+	</request>
+
+	<request name="CreateWindow" opcode="31">
+		<field type="SCREEN" name="screen" />
+		<field type="FBCONFIG" name="fbconfig" />
+		<field type="xproto:WINDOW" name="window" />
+		<field type="glx:WINDOW" name="glx_window" />
+		<field type="CARD32" name="num_attribs" />
+		<valueparam value-mask-type="CARD32"
+			value-mask-name="value_mask"
+			value-list-name="value_list" />
+	</request>
+
+	<request name="DeleteWindow" opcode="32">
+		<field type="glx:WINDOW" name="glxwindow" />
+	</request>
+
+	<!-- Requests for GL Non-rendering Commands (single ops) -->
+
+	<request name="NewList" opcode="101">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="list" />
+		<field type="CARD32" name="mode" />
+	</request>
+
+	<request name="EndList" opcode="102">
+		<field type="CONTEXT_TAG" name="context_tag" />
+	</request>
+
+	<request name="DeleteLists" opcode="103">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="list" />
+		<field type="INT32" name="range" />
+	</request>
+
+	<request name="GenLists" opcode="104">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="range" />
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="ret_val" />
+		</reply>
+	</request>
+
+	<request name="FeedbackBuffer" opcode="105">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="size" />
+		<field type="INT32" name="type" />
+	</request>
+
+	<request name="SelectBuffer" opcode="106">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="size" />
+		<!-- the reply is actually returned in the data
+		of the next RenderMode request -->
+	</request>
+
+
+	<request name="RenderMode" opcode="107">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="mode" />
+		<!--
+		This reply is only if RM was previously feedback/selection.
+		If it was in feedback mode then data is FLOAT32.
+		If previously in render mode there is no reply.
+		-->
+		<reply>
+			<pad bytes="1" />
+			<field type="CARD32" name="ret_val" />
+			<field type="CARD32" name="n" />
+			<field type="CARD32" name="new_mode" />
+			<pad bytes="12" />
+			<list type="CARD32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<enum name="RM">
+		<item name="GL_RENDER"><value>0x1C00</value></item>
+		<item name="GL_FEEDBACK"><value>0x1C01</value></item>
+		<item name="GL_SELECT"><value>0x1C02</value></item>
+	</enum>
+
+	<request name="Finish" opcode="108">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<reply>
+			<pad bytes="1" />
+		</reply>
+	</request>
+
+	<request name="PixelStoref" opcode="109">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="pname" />
+		<field type="FLOAT32" name="datum" />
+	</request>
+
+	<request name="PixelStorei" opcode="110">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="pname" />
+		<field type="INT32" name="datum" />
+	</request>
+
+	<request name="ReadPixels" opcode="111">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="x" />
+		<field type="INT32" name="y" />
+		<field type="INT32" name="width" />
+		<field type="INT32" name="height" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<field type="BOOL" name="lsb_first" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="24" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+		
+	<!-- FIXME:
+	All the Get* functions can return different stuff for replies.
+	Hopefully xcb will support multiple reply structures at some point
+	but for now... grrrr
+	Starts on page 58/180
+	-->
+	<request name="GetBooleanv" opcode="112">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="BOOL" name="datum" />
+			<pad bytes="15" />
+			<list type="BOOL" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetClipPlane" opcode="113">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="plane" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="24" />
+			<list type="FLOAT64" name="data" />
+		</reply>
+	</request>
+
+	<request name="GetDoublev" opcode="114">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT64" name="datum" />
+			<pad bytes="8" />
+			<list type="FLOAT64" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetError" opcode="115">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<reply>
+			<pad bytes="1" />
+			<field type="INT32" name="error" />
+		</reply>
+	</request>
+
+	<request name="GetFloatv" opcode="116">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetIntegerv" opcode="117">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetLightfv" opcode="118">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="light" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetLightiv" opcode="119">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="light" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMapdv" opcode="120">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="query" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT64" name="datum" />
+			<pad bytes="8" />
+			<list type="FLOAT64" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMapfv" opcode="121">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="query" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMapiv" opcode="122">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="query" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMaterialfv" opcode="123">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="face" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMaterialiv" opcode="124">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="face" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetPixelMapfv" opcode="125">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="map" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetPixelMapuiv" opcode="126">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="map" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="CARD32" name="datum" />
+			<pad bytes="12" />
+			<list type="CARD32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetPixelMapusv" opcode="127">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="map" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="CARD16" name="datum" />
+			<pad bytes="16" />
+			<list type="CARD16" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetPolygonStipple" opcode="128">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="BOOL" name="lsb_first" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="24" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+
+
+	<request name="GetString" opcode="129">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="name" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<pad bytes="16" />
+			<list type="CARD8" name="string">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexEnvfv" opcode="130">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexEnviv" opcode="131">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexGendv" opcode="132">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="coord" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT64" name="datum" />
+			<pad bytes="8" />
+			<list type="FLOAT64" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexGenfv" opcode="133">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="coord" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexGeniv" opcode="134">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="coord" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexImage" opcode="135">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="INT32" name="level" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="width" />
+			<field type="INT32" name="height" />
+			<field type="INT32" name="depth" />
+			<pad bytes="4" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+	    
+
+	<request name="GetTexParameterfv" opcode="136">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexParameteriv" opcode="137">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexLevelParameterfv" opcode="138">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="INT32" name="level" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetTexLevelParameteriv" opcode="139">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="INT32" name="level" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="IsList" opcode="141" >
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="list" />
+		<reply>
+			<pad bytes="1" />
+			<field type="BOOL32" name="ret_val" />
+		</reply>
+	</request>
+
+	<request name="Flush" opcode="142">
+		<field type="CONTEXT_TAG" name="context_tag" />
+	</request>
+
+	<request name="AreTexturesResident" opcode="143">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="n" />
+		<list type="CARD32" name="textures">
+		    <fieldref>n</fieldref>
+		</list>
+		<reply>
+			<pad bytes="1" />
+			<field type="BOOL32" name="ret_val" />
+			<pad bytes="20" />
+			<list type="BOOL" name="data" />
+		</reply>
+	</request>
+
+	<request name="DeleteTextures" opcode="144">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="n" />
+		<list type="CARD32" name="textures">
+			<fieldref>n</fieldref>
+		</list>
+	</request>
+
+	<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" />
+		</reply>
+	</request>
+
+	<request name="IsTexture" opcode="146">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="texture" />
+		<reply>
+			<pad bytes="1" />
+			<field type="BOOL32" name="ret_val" />
+		</reply>
+	</request>
+
+	<request name="GetColorTable" opcode="147">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="width" />
+			<pad bytes="12" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+	
+	<request name="GetColorTableParameterfv" opcode="148">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetColorTableParameteriv" opcode="149">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetConvolutionFilter" opcode="150">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="width" />
+			<field type="INT32" name="height" />
+			<pad bytes="8" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+
+
+	<request name="GetConvolutionParameterfv" opcode="151">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetConvolutionParameteriv" opcode="152">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetSeparableFilter" opcode="153">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="row_w" />
+			<field type="INT32" name="col_h" />
+			<pad bytes="8" />
+			<list type="BYTE" name="rows_and_cols" />
+		</reply>
+	</request>
+
+	<request name="GetHistogram" opcode="154">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<field type="BOOL" name="reset" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="width" />
+			<pad bytes="12" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+
+
+	<request name="GetHistogramParameterfv" opcode="155">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetHistogramParameteriv" opcode="156">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMinmax" opcode="157">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="format" />
+		<field type="CARD32" name="type" />
+		<field type="BOOL" name="swap_bytes" />
+		<field type="BOOL" name="reset" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="24" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+
+	<request name="GetMinmaxParameterfv" opcode="158">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="FLOAT32" name="datum" />
+			<pad bytes="12" />
+			<list type="FLOAT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<request name="GetMinmaxParameteriv" opcode="159">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+
+	<!--
+	GLX Extensions
+	
+	* XXX: So far only define non-rendering commands.
+	* Only those extensions that affect the GLX wire protocol are listed.
+	-->
+
+	<!--
+	GL_ARB_texture_compression
+	http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt
+	-->
+	<request name="GetCompressedTexImageARB" opcode="160">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="INT32" name="level" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="8" />
+			<field type="INT32" name="size" />
+			<pad bytes="12" />
+			<list type="BYTE" name="data" />
+		</reply>
+	</request>
+
+	
+	<!--
+	GL_ARB_occlusion_query
+	http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
+	-->
+
+	<request name="DeleteQueriesARB" opcode="161">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="n" />
+		<list type="CARD32" name="ids">
+			<fieldref>n</fieldref>
+		</list>
+	</request>
+
+	<request name="GenQueriesARB" opcode="162">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="INT32" name="n" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="24" />
+			<list type="CARD32" name="data" />
+		</reply>
+	</request>
+	
+	<request name="IsQueryARB" opcode="163">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="id" />
+		<reply>
+			<pad bytes="1" />
+			<field type="BOOL32" name="ret_val" />
+		</reply>
+	</request>
+	
+	<request name="GetQueryivARB" opcode="164">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="target" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+	
+	<request name="GetQueryObjectivARB" opcode="165">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="id" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="INT32" name="datum" />
+			<pad bytes="12" />
+			<list type="INT32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+	
+	<request name="GetQueryObjectuivARB" opcode="166">
+		<field type="CONTEXT_TAG" name="context_tag" />
+		<field type="CARD32" name="id" />
+		<field type="CARD32" name="pname" />
+		<reply>
+			<pad bytes="1" />
+			<pad bytes="4" />
+			<field type="CARD32" name="n" />
+			<field type="CARD32" name="datum" />
+			<pad bytes="12" />
+			<list type="CARD32" name="data">
+				<fieldref>n</fieldref>
+			</list>
+		</reply>
+	</request>
+	
+	<!--
+	GL_ARB_vertex_program
+	http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_program.txt
+	XXX: Need to write up vops
+	--> 
+
+	<!--
+	GL_ARB_fragment_program
+	http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_program.txt
+	XXX: Need to write up vops
+	-->
+	
+	<!--
+	GL_SGIS_texture_filter4
+	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/texture_filter4.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_EXT_histogram
+	http://oss.sgi.com/projects/ogl-sample/registry/EXT/histogram.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_EXT_convolution
+	http://oss.sgi.com/projects/ogl-sample/registry/EXT/convolution.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGI_color_table
+	http://oss.sgi.com/projects/ogl-sample/registry/SGI/color_table.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_EXT_texture_object
+	http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_object.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGIS_detail_texture
+	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/detail_texture.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGIS_sharpen_texture
+	http://oss.sgi.com/projects/ogl-sample/registry/SGIS/sharpen_texture.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGI_make_current_read
+	http://oss.sgi.com/projects/ogl-sample/registry/SGI/make_current_read.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_EXT_import_context
+	http://oss.sgi.com/projects/ogl-sample/registry/EXT/import_context.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGIX_fbconfig
+	http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_SGIX_pbuffer
+	http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_EXT_pixel_transform
+	http://oss.sgi.com/projects/ogl-sample/registry/EXT/pixel_transform.txt
+	XXX: Need to write up vops
+	-->
+	
+	<!--
+	GL_NV_register_combiners
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_fence
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/fence.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_register_combiners2
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/register_combiners2.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_vertex_program
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_vertex_program
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_program.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_occlusion_query
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/occlusion_query.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_NV_fragment_program
+	http://oss.sgi.com/projects/ogl-sample/registry/NV/fragment_program.txt
+	XXX: Need to write up vops
+	-->
+
+	<!--
+	GL_OES_single_precision
+	http://oss.sgi.com/projects/ogl-sample/registry/OES/single_precision.txt
+	XXX: Need to write up vops
+	-->
+	
+</xcb>
diff --git a/src/randr.xml b/src/randr.xml
new file mode 100644
index 0000000..5c0ccdf
--- /dev/null
+++ b/src/randr.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="randr" extension-xname="RANDR" extension-name="RandR">
+	<!-- Implements version 1.1 of RANDR -->	
+
+	<import>xproto</import>
+
+	<enum name="Rotation">
+		<item name="Rotate_0"><value>1</value></item>
+		<item name="Rotate_90"><value>2</value></item>
+		<item name="Rotate_180"><value>4</value></item>
+		<item name="Rotate_270"><value>8</value></item>
+		<item name="Reflect_X"><value>16</value></item>
+		<item name="Reflect_Y"><value>32</value></item>
+	</enum>
+
+	<struct name="ScreenSize">
+		<field type="INT16" name="width" />
+		<field type="INT16" name="height" />
+		<field type="INT16" name="mwidth" />
+		<field type="INT16" name="mheight" />
+	</struct>
+	
+	<struct name="RefreshRates">
+		<field type="CARD16" name="nRates" />
+		<list type="CARD16" name="rates">
+			<fieldref>nRates</fieldref>
+		</list>
+	</struct>
+
+	<request name="QueryVersion" opcode="0">
+		<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>
+
+	<!-- This is for the 1.1 version request.  I don't believe we need to specify a 1.0 request
+	as few things used randr 1.0.  The only difference is the removal of refresh and padding I think.
+	BEWARE: the docs lie!
+	-->
+	<request name="SetScreenConfig" opcode="2">
+		<field type="WINDOW" name="drawable" />
+		<field type="CARD32" name="timestamp" />
+		<field type="CARD32" name="config_timestamp" />
+		<field type="CARD16" name="sizeID" />
+		<field type="INT16" name="rotation" />
+		<field type="CARD16" name="refresh" />
+		<pad bytes="2" />
+		<reply>
+			<field type="CARD8" name="status" />
+			<field type="CARD32" name="timestamp" />
+			<field type="CARD32" name="config_timestamp" />
+			<field type="WINDOW" name="root" />
+			<field type="CARD16" name="subpixel_order" />
+			<pad bytes="10" />
+		</reply>
+	</request>
+
+	<enum name="SetConfig">
+		<item name="Success"><value>0</value></item>
+		<item name="InvalidConfigTime"><value>1</value></item>
+		<item name="InvalidTime"><value>2</value></item>
+		<item name="Failed"><value>3</value></item>
+	</enum>
+
+	<request name="SelectInput" opcode="4">	
+		<field type="WINDOW" name="window" />
+		<field type="CARD16" name="enable" />
+		<pad bytes="2" />
+	</request>
+
+	<!--
+	I think this is correct.  It works. though I believe nInfo is a bit high...
+	-->
+	<request name="GetScreenInfo" opcode="5">
+		<field type="WINDOW" name="window" />
+		<reply>
+			<field type="CARD8" name="rotations" />
+			<field type="WINDOW" name="root" />
+			<field type="CARD32" name="timestamp" />
+			<field type="CARD32" name="config_timestamp" />
+			<field type="CARD16" name="nSizes" />
+			<field type="CARD16" name="sizeID" />
+			<field type="INT16" name="rotation" />
+			<field type="CARD16" name="rate" />
+			<field type="CARD16" name="nInfo" />
+			<pad bytes="2" />
+			<list type="ScreenSize" name="sizes">
+			    <fieldref>nSizes</fieldref>
+			</list>
+			<list type="RefreshRates" name="rates">
+				<op op="-">
+					<fieldref>nInfo</fieldref>
+					<fieldref>nSizes</fieldref>
+				</op>
+			</list>
+		</reply>
+	</request>
+
+	<enum name="SM" >
+		<item name="ScreenChangeNotify"><value>1</value></item>
+	</enum>
+	
+	<event name="ScreenChangeNotify" number="0">
+		<field type="CARD8" name="rotation" />
+		<field type="CARD32" name="timestamp" />
+		<field type="CARD32" name="config_timestamp" />
+		<field type="WINDOW" name="root" />
+		<field type="WINDOW" name="request_window" />
+		<field type="CARD16" name="sizeID" />
+		<field type="CARD16" name="subpixel_order" />
+		<field type="CARD16" name="width" />
+		<field type="CARD16" name="height" />
+		<field type="CARD16" name="mwidth" />
+		<field type="CARD16" name="mheight" />
+	</event>
+		
+</xcb>
diff --git a/src/record.xml b/src/record.xml
new file mode 100644
index 0000000..09729ad
--- /dev/null
+++ b/src/record.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="record" extension-xname="RECORD" extension-name="Record">
+
+    <!-- Types -->
+    <xidtype name="CONTEXT" />
+    
+    <struct name="Range8">
+	<field type="CARD8" name="first" />
+	<field type="CARD8" name="last" />
+    </struct>
+
+    <struct name="Range16">
+	<field type="CARD16" name="first" />
+	<field type="CARD16" name="last" />
+    </struct>
+
+    <struct name="ExtRange">
+	<field type="Range8" name="major" />
+	<field type="Range16" name="minor" />
+    </struct>
+
+    <struct name="Range">
+	<field type="Range8" name="core_requests" />
+	<field type="Range8" name="core_replies" />
+	<field type="ExtRange" name="ext_requests" />
+	<field type="ExtRange" name="ext_replies" />
+	<field type="Range8" name="delivered_events" />
+	<field type="Range8" name="device_events" />
+	<field type="Range8" name="errors" />
+	<field type="BOOL" name="client_started" />
+	<field type="BOOL" name="client_died" />
+    </struct>
+
+    <typedef oldname="CARD8" newname="ElementHeader" />
+    <enum name="HType">
+	<item name="FromServerTime"><value>0x01</value></item>
+	<item name="FromClientTime"><value>0x02</value></item>
+	<item name="FromClientSequence"><value>0x04</value></item>
+    </enum>
+
+    <typedef oldname="CARD32" newname="ClientSpec" />
+    <enum name="CS">
+	<item name="CurrentClients"><value>1</value></item>
+	<item name="FutureClients"><value>2</value></item>
+	<item name="AllClients"><value>3</value></item>
+    </enum>
+
+    <struct name="ClientInfo">
+	<field type="ClientSpec" name="client_resource" />
+	<field type="CARD32" name="num_ranges" />
+	<list type="Range" name="ranges">
+	    <fieldref>num_ranges</fieldref>
+	</list>
+    </struct>
+
+    <!-- Errors -->
+    <error name="BadContext" number="0">
+	<field type="CARD32" name="invalid_record" />
+    </error>
+	
+    <!-- Requests -->
+    <request name="QueryVersion" opcode="0">
+	<field type="CARD16" name="major_version" />
+	<field type="CARD16" name="minor_version" />
+	<reply>
+	    <pad bytes="1"/>
+	    <field type="CARD16" name="major_version" />
+	    <field type="CARD16" name="minor_version" />
+	</reply>
+    </request>
+
+    <request name="CreateContext" opcode="1">
+	<field type="record:CONTEXT" name="context" />
+	<field type="ElementHeader" name="element_header" />
+	<pad bytes="3" />
+	<field type="CARD32" name="num_client_specs" />
+	<field type="CARD32" name="num_ranges" />
+	<list type="ClientSpec" name="client_specs">
+	    <fieldref>num_client_specs</fieldref>
+	</list>
+	<list type="Range" name="ranges">
+	    <fieldref>num_ranges</fieldref>
+	</list>
+    </request>
+
+    <request name="RegisterClients" opcode="2">
+	<field type="record:CONTEXT" name="context" />
+	<field type="ElementHeader" name="element_header" />
+	<pad bytes="3" />
+	<field type="CARD32" name="num_client_specs" />
+	<field type="CARD32" name="num_ranges" />
+	<list type="ClientSpec" name="client_specs">
+	    <fieldref>num_client_specs</fieldref>
+	</list>
+	<list type="Range" name="ranges">
+	    <fieldref>num_ranges</fieldref>
+	</list>
+    </request>
+
+    <request name="UnregisterClients" opcode="3">
+	<field type="record:CONTEXT" name="context" />
+	<field type="CARD32" name="num_client_specs" />
+	<list type="ClientSpec" name="client_specs">
+	    <fieldref>num_client_specs</fieldref>
+	</list>
+    </request>
+
+    <request name="GetContext" opcode="4">
+	<field type="record:CONTEXT" name="context" />
+	<reply>
+	    <field type="BOOL" name="enabled" />
+	    <field type="ElementHeader" name="element_header" />
+	    <pad bytes="3" />
+	    <field type="CARD32" name="num_intercepted_clients" />
+	    <pad bytes="16" />
+	    <list type="ClientInfo" name="intercepted_clients">
+		<fieldref>num_intercepted_clients</fieldref>
+	    </list>
+	</reply>
+    </request>
+
+    <request name="EnableContext" opcode="5">
+	<field type="record:CONTEXT" name="context" />
+	<reply>
+	    <field type="CARD8" name="category" />
+	    <field type="ElementHeader" name="element_header" />
+	    <field type="BOOL" name="client_swapped" />
+	    <pad bytes="2" />
+	    <field type="CARD32" name="xid_base" />
+	    <field type="CARD32" name="server_time" />
+	    <field type="CARD32" name="rec_sequence_num" />
+	    <pad bytes="8" />
+	    <list type="BYTE" name="data" />
+	</reply>
+    </request>
+	    
+    <request name="DisableContext" opcode="6">
+	<field type="record:CONTEXT" name="context" />
+    </request>
+
+    <request name="FreeContext" opcode="7">
+	<field type="record:CONTEXT" name="context" />
+    </request>
+    
+</xcb>
diff --git a/src/render.xml b/src/render.xml
new file mode 100644
index 0000000..88e9a40
--- /dev/null
+++ b/src/render.xml
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2002-2004 Carl D. Worth, Jamey Sharp, Bart Massey, Josh Triplett
+All Rights Reserved.  See the file COPYING in this directory
+for licensing information.
+-->
+<xcb header="render" extension-xname="RENDER" extension-name="Render">
+  <!-- supports version 0.10 -->
+
+  <import>xproto</import>
+
+  <enum name="PictType">
+    <item name="Indexed" />
+    <item name="Direct" />
+  </enum>
+
+  <!-- Disjoint* and Conjoint* are new in version 0.2 -->
+  <enum name="PictOp">
+    <item name="Clear" />
+    <item name="Src" />
+    <item name="Dst" />
+    <item name="Over" />
+    <item name="OverReverse" />
+    <item name="In" />
+    <item name="InReverse" />
+    <item name="Out" />
+    <item name="OutReverse" />
+    <item name="Atop" />
+    <item name="AtopReverse" />
+    <item name="Xor" />
+    <item name="Add" />
+    <item name="Saturate" />
+    
+    <item name="DisjointClear"><value>0x10</value></item>
+    <item name="DisjointSrc" />
+    <item name="DisjointDst" />
+    <item name="DisjointOver" />
+    <item name="DisjointOverReverse" />
+    <item name="DisjointIn" />
+    <item name="DisjointInReverse" />
+    <item name="DisjointOut" />
+    <item name="DisjointOutReverse" />
+    <item name="DisjointAtop" />
+    <item name="DisjointAtopReverse" />
+    <item name="DisjointXor" />
+    
+    <item name="ConjointClear"><value>0x20</value></item>
+    <item name="ConjointSrc" />
+    <item name="ConjointDst" />
+    <item name="ConjointOver" />
+    <item name="ConjointOverReverse" />
+    <item name="ConjointIn" />
+    <item name="ConjointInReverse" />
+    <item name="ConjointOut" />
+    <item name="ConjointOutReverse" />
+    <item name="ConjointAtop" />
+    <item name="ConjointAtopReverse" />
+    <item name="ConjointXor" />
+  </enum>
+
+  <enum name="PolyEdge">
+    <item name="Sharp" />
+    <item name="Smooth" />
+  </enum>
+
+  <enum name="PolyMode">
+    <item name="Precise" />
+    <item name="Imprecise" />
+  </enum>
+
+  <enum name="CP">
+    <item name="Repeat">          <bit>0</bit></item>
+    <item name="AlphaMap">        <bit>1</bit></item>
+    <item name="AlphaXOrigin">    <bit>2</bit></item>
+    <item name="AlphaYOrigin">    <bit>3</bit></item>
+    <item name="ClipXOrigin">     <bit>4</bit></item>
+    <item name="ClipYOrigin">     <bit>5</bit></item>
+    <item name="ClipMask">        <bit>6</bit></item>
+    <item name="GraphicsExposure"><bit>7</bit></item>
+    <item name="SubwindowMode">   <bit>8</bit></item>
+    <item name="PolyEdge">        <bit>9</bit></item>
+    <item name="PolyMode">        <bit>10</bit></item>
+    <item name="Dither">          <bit>11</bit></item>
+    <item name="ComponentAlpha">  <bit>12</bit></item>
+  </enum>
+
+  <enum name="SubPixel">
+    <item name="Unknown" />
+    <item name="HorizontalRGB" />
+    <item name="HorizontalBGR" />
+    <item name="VerticalRGB" />
+    <item name="VerticalBGR" />
+    <item name="None" />
+  </enum>
+
+  <!-- Extended repeat attributes introduced in 0.10 -->
+  <enum name="Repeat">
+    <item name="None" />
+    <item name="Normal" />
+    <item name="Pad" />
+    <item name="Reflect" />
+  </enum>
+
+  <typedef oldname="CARD32" newname="GLYPH" />
+  <xidtype name="GLYPHSET" />
+
+  <xidtype name="PICTURE" />
+  <xidtype name="PICTFORMAT" />
+
+  <typedef oldname="INT32" newname="FIXED" />
+
+  <error name="PictFormat" number="0" />
+  <error name="Picture" number="1" />
+  <error name="PictOp" number="2" />
+  <error name="GlyphSet" number="3" />
+  <error name="Glyph" number="4" />
+
+  <struct name="DIRECTFORMAT">
+    <field type="CARD16" name="red_shift" />
+    <field type="CARD16" name="red_mask" />
+    <field type="CARD16" name="green_shift" />
+    <field type="CARD16" name="green_mask" />
+    <field type="CARD16" name="blue_shift" />
+    <field type="CARD16" name="blue_mask" />
+    <field type="CARD16" name="alpha_shift" />
+    <field type="CARD16" name="alpha_mask" />
+  </struct>
+
+  <struct name="PICTFORMINFO">
+    <field type="PICTFORMAT" name="id" />
+    <field type="CARD8" name="type" />
+    <field type="CARD8" name="depth" />
+    <pad bytes="2" />
+    <field type="DIRECTFORMAT" name="direct" />
+    <field type="COLORMAP" name="colormap" />
+  </struct>
+
+  <struct name="PICTVISUAL">
+    <field type="VISUALID" name="visual" />
+    <field type="PICTFORMAT" name="format" />
+  </struct>
+
+  <struct name="PICTDEPTH">
+    <field type="CARD8" name="depth" />
+    <pad bytes="1" />
+    <field type="CARD16" name="num_visuals" />
+    <pad bytes="4" />
+    <list type="PICTVISUAL" name="visuals">
+      <fieldref>num_visuals</fieldref>
+    </list>
+  </struct>
+
+  <struct name="PICTSCREEN">
+    <field type="CARD32" name="num_depths" />
+    <field type="PICTFORMAT" name="fallback" />
+    <list type="PICTDEPTH" name="depths">
+      <fieldref>num_depths</fieldref>
+    </list>
+  </struct>
+
+  <struct name="INDEXVALUE">
+    <field type="CARD32" name="pixel" />
+    <field type="CARD16" name="red" />
+    <field type="CARD16" name="green" />
+    <field type="CARD16" name="blue" />
+    <field type="CARD16" name="alpha" />
+  </struct>
+
+  <struct name="COLOR">
+    <field type="CARD16" name="red" />
+    <field type="CARD16" name="green" />
+    <field type="CARD16" name="blue" />
+    <field type="CARD16" name="alpha" />
+  </struct>
+
+  <struct name="POINTFIX">
+    <field type="FIXED" name="x" />
+    <field type="FIXED" name="y" />
+  </struct>
+
+  <struct name="LINEFIX">
+    <field type="POINTFIX" name="p1" />
+    <field type="POINTFIX" name="p2" />
+  </struct>
+
+  <struct name="TRIANGLE">
+    <field type="POINTFIX" name="p1" />
+    <field type="POINTFIX" name="p2" />
+    <field type="POINTFIX" name="p3" />
+  </struct>
+
+  <struct name="TRAPEZOID">
+    <field type="FIXED" name="top" />
+    <field type="FIXED" name="bottom" />
+    <field type="LINEFIX" name="left" />
+    <field type="LINEFIX" name="right" />
+  </struct>
+
+  <struct name="GLYPHINFO">
+    <field type="CARD16" name="width" />
+    <field type="CARD16" name="height" />
+    <field type="INT16" name="x" />
+    <field type="INT16" name="y" />
+    <field type="INT16" name="x_off" />
+    <field type="INT16" name="y_off" />
+  </struct>
+
+
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD32" name="client_major_version" />
+    <field type="CARD32" name="client_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="QueryPictFormats" opcode="1">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="num_formats" />
+      <field type="CARD32" name="num_screens" />
+      <field type="CARD32" name="num_depths" />
+      <field type="CARD32" name="num_visuals" />
+      <field type="CARD32" name="num_subpixel" /> <!-- new in version 0.6 -->
+      <pad bytes="4" />
+      <list type="PICTFORMINFO" name="formats">
+        <fieldref>num_formats</fieldref>
+      </list>
+      <list type="PICTSCREEN" name="screens">
+        <fieldref>num_screens</fieldref>
+      </list>
+      <list type="CARD32" name="subpixels">
+        <fieldref>num_subpixel</fieldref>
+      </list>
+    </reply>
+  </request>
+
+  <!-- from version 0.7 -->
+  <request name="QueryPictIndexValues" opcode="2">
+    <field type="PICTFORMAT" name="format" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="num_values" />
+      <pad bytes="20" />
+      <list type="INDEXVALUE" name="values">
+        <fieldref>num_values</fieldref>
+      </list>
+    </reply>
+  </request>
+
+  <!-- opcode 3 reserved for QueryDithers -->
+
+  <request name="CreatePicture" opcode="4">
+    <field type="PICTURE" name="pid" />
+    <field type="DRAWABLE" name="drawable" />
+    <field type="PICTFORMAT" name="format" />
+    <valueparam value-mask-type="CARD32"
+                value-mask-name="value_mask"
+                value-list-name="value_list" />
+  </request>
+
+  <request name="ChangePicture" opcode="5">
+    <field type="PICTURE" name="picture" />
+    <valueparam value-mask-type="CARD32"
+                value-mask-name="value_mask"
+                value-list-name="value_list" />
+  </request>
+
+  <request name="SetPictureClipRectangles" opcode="6">
+    <field type="PICTURE" name="picture" />
+    <field type="INT16" name="clip_x_origin" />
+    <field type="INT16" name="clip_y_origin" />
+    <list type="RECTANGLE" name="rectangles" />
+  </request>
+
+  <request name="FreePicture" opcode="7">
+    <field type="PICTURE" name="picture" />
+  </request>
+
+  <request name="Composite" opcode="8">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="mask" />
+    <field type="PICTURE" name="dst" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <field type="INT16" name="mask_x" />
+    <field type="INT16" name="mask_y" />
+    <field type="INT16" name="dst_x" />
+    <field type="INT16" name="dst_y" />
+    <field type="CARD16" name="width" />
+    <field type="CARD16" name="height" />
+  </request>
+
+  <!-- opcode 9 reserved for Scale -->
+
+  <request name="Trapezoids" opcode="10">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="TRAPEZOID" name="traps" />
+  </request>
+
+  <request name="Triangles" opcode="11">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="TRIANGLE" name="triangles" />
+  </request>
+
+  <request name="TriStrip" opcode="12">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="POINTFIX" name="points" />
+  </request>
+
+  <request name="TriFan" opcode="13">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="POINTFIX" name="points" />
+  </request>
+
+  <!-- opcode 14 reserved for ColorTrapezoids -->
+
+  <!-- opcode 15 reserved for ColorTriangles -->
+
+  <!-- opcode 16 reserved for Transform -->
+
+  <request name="CreateGlyphSet" opcode="17">
+    <field type="GLYPHSET" name="gsid" />
+    <field type="PICTFORMAT" name="format" />
+  </request>
+
+  <request name="ReferenceGlyphSet" opcode="18">
+    <field type="GLYPHSET" name="gsid" />
+    <field type="GLYPHSET" name="existing" />
+  </request>
+
+  <request name="FreeGlyphSet" opcode="19">
+    <field type="GLYPHSET" name="glyphset" />
+  </request>
+
+  <request name="AddGlyphs" opcode="20">
+    <field type="GLYPHSET" name="glyphset" />
+    <field type="CARD32" name="glyphs_len" />
+    <list type="CARD32" name="glyphids">
+      <fieldref>glyphs_len</fieldref>
+    </list>
+    <list type="GLYPHINFO" name="glyphs">
+      <fieldref>glyphs_len</fieldref>
+    </list>
+    <list type="BYTE" name="data" />
+  </request>
+
+  <!-- opcode 21 reserved for AddGlyphsFromPicture -->
+
+  <request name="FreeGlyphs" opcode="22">
+    <field type="GLYPHSET" name="glyphset" />
+    <list type="GLYPH" name="glyphs" />
+  </request>
+
+  <request name="CompositeGlyphs8" opcode="23">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="GLYPHSET" name="glyphset" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="BYTE" name="glyphcmds" />
+  </request>
+
+  <request name="CompositeGlyphs16" opcode="24">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="GLYPHSET" name="glyphset" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="BYTE" name="glyphcmds" />
+  </request>
+
+  <request name="CompositeGlyphs32" opcode="25">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="src" />
+    <field type="PICTURE" name="dst" />
+    <field type="PICTFORMAT" name="mask_format" />
+    <field type="GLYPHSET" name="glyphset" />
+    <field type="INT16" name="src_x" />
+    <field type="INT16" name="src_y" />
+    <list type="BYTE" name="glyphcmds" />
+  </request>
+
+  <!-- new in version 0.1 -->
+
+  <request name="FillRectangles" opcode="26">
+    <field type="CARD8" name="op" />
+    <pad bytes="3" />
+    <field type="PICTURE" name="dst" />
+    <field type="COLOR" name="color" />
+    <list type="RECTANGLE" name="rects" />
+  </request>
+
+  <!-- new in version 0.5 -->
+
+  <request name="CreateCursor" opcode="27">
+    <field type="CURSOR" name="cid" />
+    <field type="PICTURE" name="source" />
+    <field type="CARD16" name="x" />
+    <field type="CARD16" name="y" />
+  </request>
+
+  <!-- new in version 0.6 -->
+
+  <struct name="TRANSFORM">
+    <field type="FIXED" name="matrix11" />
+    <field type="FIXED" name="matrix12" />
+    <field type="FIXED" name="matrix13" />
+    <field type="FIXED" name="matrix21" />
+    <field type="FIXED" name="matrix22" />
+    <field type="FIXED" name="matrix23" />
+    <field type="FIXED" name="matrix31" />
+    <field type="FIXED" name="matrix32" />
+    <field type="FIXED" name="matrix33" />
+  </struct>
+
+  <request name="SetPictureTransform" opcode="28">
+    <field type="PICTURE" name="picture" />
+    <field type="TRANSFORM" name="transform" />
+  </request>
+
+  <request name="QueryFilters" opcode="29">
+    <field type="DRAWABLE" name="drawable" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="num_aliases" />
+      <field type="CARD32" name="num_filters" />
+      <pad bytes="16" />
+      <list type="CARD16" name="aliases">
+        <fieldref>num_aliases</fieldref>
+      </list>
+      <list type="STR" name="filters">
+        <fieldref>num_filters</fieldref>
+      </list>
+    </reply>
+  </request>
+
+  <request name="SetPictureFilter" opcode="30">
+    <field type="PICTURE" name="picture" />
+    <field type="CARD16" name="filter_len" />
+    <list type="char" name="filter">
+      <fieldref>filter_len</fieldref>
+    </list>
+    <list type="FIXED" name="values" />
+  </request>
+
+  <!-- new in version 0.8 -->
+
+  <struct name="ANIMCURSORELT">
+    <field type="CURSOR" name="cursor" />
+    <field type="CARD32" name="delay" />
+  </struct>
+
+  <request name="CreateAnimCursor" opcode="31">
+    <field type="CURSOR" name="cid" />
+    <list type="ANIMCURSORELT" name="cursors" />
+  </request>
+
+  <!-- new in version 0.9 -->
+ 
+  <struct name="SPANFIX">
+    <field type="FIXED" name="l" />
+    <field type="FIXED" name="r" />
+    <field type="FIXED" name="y" />
+  </struct>
+
+  <struct name="TRAP">
+    <field type="SPANFIX" name="top" />
+    <field type="SPANFIX" name="bot" />
+  </struct>
+
+  <request name="AddTraps" opcode="32">
+    <field type="PICTURE" name="picture" />
+    <field type="INT16" name="x_off" />
+    <field type="INT16" name="y_off" />
+    <list type="TRAP" name="traps" />
+  </request>
+  
+  <!-- new in version 0.10 -->
+
+  <request name="CreateSolidFill" opcode="33">
+    <field type="PICTURE" name="picture" />
+    <field type="COLOR" name="color" />
+  </request>
+
+  <request name="CreateLinearGradient" opcode="34">
+    <field type="PICTURE" name="picture" />
+    <field type="POINTFIX" name="p1" />
+    <field type="POINTFIX" name="p2" />
+    <field type="CARD32" name="num_stops" />
+  </request>
+
+  <request name="CreateRadialGradient" opcode="35">
+    <field type="PICTURE" name="picture" />
+    <field type="POINTFIX" name="inner" />
+    <field type="POINTFIX" name="outer" />
+    <field type="FIXED" name="inner_radius" />
+    <field type="FIXED" name="outer_radius" />
+    <field type="CARD32" name="num_stops" />
+  </request>
+
+  <request name="CreateConicalGradient" opcode="36">
+    <field type="PICTURE" name="picture" />
+    <field type="POINTFIX" name="center" />
+    <field type="FIXED" name="angle" />        <!-- degrees -->
+    <field type="CARD32" name="num_stops" />
+  </request>
+</xcb>
diff --git a/src/res.xml b/src/res.xml
new file mode 100644
index 0000000..eda0cbe
--- /dev/null
+++ b/src/res.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<xcb header="res" extension-xname="X-Resource" extension-name="Res">
+    <struct name="Client">
+        <field type="CARD32" name="resource_base" />
+        <field type="CARD32" name="resource_mask" />
+    </struct>
+
+    <struct name="Type">
+        <field type="CARD32" name="resource_type" />
+        <field type="CARD32" name="count" />
+    </struct>
+
+    <request name="QueryVersion" opcode="0">
+        <field type="CARD8" name="client_major" />
+        <field type="CARD8" name="client_minor" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="server_major" />
+            <field type="CARD16" name="server_minor" />
+        </reply>
+    </request>
+
+    <request name="QueryClients" opcode="1">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num_clients" />
+            <pad bytes="20" />
+            <list type="Client" name="clients">
+                <fieldref>num_clients</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="QueryClientResources" opcode="2">
+        <field type="CARD32" name="xid" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num_types" />
+            <pad bytes="20" />
+            <list type="Type" name="types">
+                <fieldref>num_types</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="QueryClientPixmapBytes" opcode="3">
+        <field type="CARD32" name="xid" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="bytes" />
+            <field type="CARD32" name="bytes_overflow" />
+        </reply>
+    </request>
+</xcb>
diff --git a/src/screensaver.xml b/src/screensaver.xml
new file mode 100644
index 0000000..1a095de
--- /dev/null
+++ b/src/screensaver.xml
@@ -0,0 +1,126 @@
+<!--
+
+Copyright (C) 2005 Vincent Torri.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!--
+Screen Saver Extension to the X Protocol
+Draft Standard Version 1.1
+-->
+<xcb header="screensaver" extension-xname="MIT-SCREEN-SAVER" extension-name="ScreenSaver">
+  <!-- Types -->
+
+  <import>xproto</import>
+
+  <enum name="Kind">
+    <item name="Blanked" />
+    <item name="Internal" />
+    <item name="External" />
+  </enum>
+
+  <enum name="Event">
+    <item name="NotifyMask"><bit>0</bit></item>
+    <item name="CycleMask"> <bit>1</bit></item>
+  </enum>
+
+  <enum name="State">
+    <item name="Off" />
+    <item name="On" />
+    <item name="Cycle" />
+    <item name="Disabled" />
+  </enum>
+
+  <!-- Errors -->
+  <!-- Requests -->
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD8" name="client_major_version"/>
+    <field type="CARD8" name="client_minor_version"/>
+    <pad bytes="2"/>
+    <reply>
+      <pad bytes="1"/>
+      <field type="CARD16" name="server_major_version"/>
+      <field type="CARD16" name="server_minor_version"/>
+      <pad bytes="20"/>
+    </reply>
+  </request>
+
+  <request name="QueryInfo" opcode="1">
+    <field type="DRAWABLE" name="drawable"/>
+    <reply>
+      <field type="CARD8" name="state"/>
+      <field type="WINDOW" name="saver_window"/>
+      <field type="CARD32" name="ms_until_server"/>
+      <field type="CARD32" name="ms_since_user_input"/>
+      <field type="CARD32" name="event_mask" />
+      <field type="BYTE" name="kind"/>  <!-- enum Kind -->
+      <pad bytes="7"/>
+    </reply>
+  </request>
+
+  <request name="SelectInput" opcode="2">
+    <field type="DRAWABLE" name="drawable"/>
+    <field type="CARD32" name="event_mask" />   <!-- enum Event -->
+  </request>
+
+  <request name="SetAttributes" opcode="3">
+    <field type="DRAWABLE" name="drawable"/>
+    <field type="INT16" name="x"/>
+    <field type="INT16" name="y"/>
+    <field type="CARD16" name="width"/>
+    <field type="CARD16" name="height"/>
+    <field type="CARD16" name="border_width"/>
+    <field type="BYTE" name="class"/>   <!-- enum XCBWindowClass -->
+    <field type="CARD8" name="depth"/>
+    <field type="VISUALID" name="visual"/>
+    <valueparam value-mask-type="CARD32"
+                value-mask-name="value_mask"
+                value-list-name="value_list" />
+  </request>
+
+  <request name="UnsetAttributes" opcode="4">
+    <field type="DRAWABLE" name="drawable"/>
+  </request>
+  
+  <!-- version 1.1 -->
+  <request name="Suspend" opcode="5">
+    <field type="BOOL" name="suspend" />
+    <pad bytes="3" />
+  </request>
+
+  <!-- Events -->
+
+  <event name="Notify" number="0">
+    <field type="CARD8" name="code"/>
+    <field type="BYTE" name="state"/>    <!-- enum State -->
+    <field type="CARD16" name="sequence_number"/>
+    <field type="TIMESTAMP" name="time"/>
+    <field type="WINDOW" name="root"/>
+    <field type="WINDOW" name="window"/>
+    <field type="BYTE" name="kind"/>     <!-- enum Kind -->
+    <field type="BOOL" name="forced"/>
+    <pad bytes="14"/>
+  </event>
+
+</xcb>
diff --git a/src/shape.xml b/src/shape.xml
new file mode 100644
index 0000000..36d0652
--- /dev/null
+++ b/src/shape.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!-- This file describes version 1.1 of the Shape extension. -->
+<xcb header="shape" extension-xname="SHAPE" extension-name="Shape">
+  <import>xproto</import>
+
+  <typedef oldname="CARD8" newname="OP" />
+  <typedef oldname="CARD8" newname="KIND" />
+
+  <!-- Shape attributes of type OP. -->
+  <enum name="SO">
+    <item name="Set" />
+    <item name="Union" />
+    <item name="Intersect" />
+    <item name="Subtract" />
+    <item name="Invert" />
+  </enum>
+
+  <!-- Shape attributes of type KIND. -->
+  <enum name="SK">
+    <item name="Bounding" />
+    <item name="Clip" />
+    <item name="Input" />      <!-- added in version 1.1 -->
+  </enum>
+
+  <event name="Notify" number="0">
+    <field type="KIND" name="shape_kind" />
+    <field type="WINDOW" name="affected_window" />
+    <field type="INT16" name="extents_x" />
+    <field type="INT16" name="extents_y" />
+    <field type="CARD16" name="extents_width" />
+    <field type="CARD16" name="extents_height" />
+    <field type="TIMESTAMP" name="server_time" />
+    <field type="BOOL" name="shaped" />
+  </event>
+
+  <request name="QueryVersion" opcode="0">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="major_version" />
+      <field type="CARD16" name="minor_version" />
+    </reply>
+  </request>
+
+  <request name="Rectangles" opcode="1">
+    <field type="OP" name="operation" />
+    <field type="KIND" name="destination_kind" />
+    <field type="BYTE" name="ordering" />
+    <pad bytes="1" />
+    <field type="WINDOW" name="destination_window" />
+    <field type="INT16" name="x_offset" />
+    <field type="INT16" name="y_offset" />
+    <list type="RECTANGLE" name="rectangles" />
+  </request>
+
+  <request name="Mask" opcode="2">
+    <field type="OP" name="operation" />
+    <field type="KIND" name="destination_kind" />
+    <pad bytes="2" />
+    <field type="WINDOW" name="destination_window" />
+    <field type="INT16" name="x_offset" />
+    <field type="INT16" name="y_offset" />
+    <field type="PIXMAP" name="source_bitmap" />
+  </request>
+
+  <request name="Combine" opcode="3">
+    <field type="OP" name="operation" />
+    <field type="KIND" name="destination_kind" />
+    <field type="KIND" name="source_kind" />
+    <pad bytes="1" />
+    <field type="WINDOW" name="destination_window" />
+    <field type="INT16" name="x_offset" />
+    <field type="INT16" name="y_offset" />
+    <field type="WINDOW" name="source_window" />
+  </request>
+
+  <request name="Offset" opcode="4">
+    <field type="KIND" name="destination_kind" />
+    <pad bytes="3" />
+    <field type="WINDOW" name="destination_window" />
+    <field type="INT16" name="x_offset" />
+    <field type="INT16" name="y_offset" />
+  </request>
+
+  <request name="QueryExtents" opcode="5">
+    <field type="WINDOW" name="destination_window" />
+    <reply>
+      <pad bytes="1" />
+      <field type="BOOL" name="bounding_shaped" />
+      <field type="BOOL" name="clip_shaped" />
+      <pad bytes="2" />
+      <field type="INT16" name="bounding_shape_extents_x" />
+      <field type="INT16" name="bounding_shape_extents_y" />
+      <field type="CARD16" name="bounding_shape_extents_width" />
+      <field type="CARD16" name="bounding_shape_extents_height" />
+      <field type="INT16" name="clip_shape_extents_x" />
+      <field type="INT16" name="clip_shape_extents_y" />
+      <field type="CARD16" name="clip_shape_extents_width" />
+      <field type="CARD16" name="clip_shape_extents_height" />
+    </reply>
+  </request>
+
+  <request name="SelectInput" opcode="6">
+    <field type="WINDOW" name="destination_window" />
+    <field type="BOOL" name="enable" />
+  </request>
+
+  <request name="InputSelected" opcode="7">
+    <field type="WINDOW" name="destination_window" />
+    <reply>
+      <field type="BOOL" name="enabled" />
+    </reply>
+  </request>
+
+  <request name="GetRectangles" opcode="8">
+    <field type="WINDOW" name="window" />
+    <field type="KIND" name="source_kind" />
+    <reply>
+      <field type="BYTE" name="ordering" />
+      <field type="CARD32" name="rectangles_len" />
+      <list type="RECTANGLE" name="rectangles">
+        <fieldref>rectangles_len</fieldref>
+      </list>
+    </reply>
+  </request>
+</xcb>
diff --git a/src/shm.xml b/src/shm.xml
new file mode 100644
index 0000000..e576c1f
--- /dev/null
+++ b/src/shm.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<xcb header="shm" extension-xname="MIT-SHM" extension-name="Shm">
+  <import>xproto</import>
+
+  <xidtype name="SEG" />
+
+  <event name="Completion" number="0">
+    <pad bytes="1" />
+    <field type="DRAWABLE" name="drawable" />
+    <field type="SEG" name="shmseg" />
+    <field type="CARD16" name="minor_event" />
+    <field type="BYTE" name="major_event" />
+    <pad bytes="1" />
+    <field type="CARD32" name="offset" />
+  </event>
+
+  <errorcopy name="BadSeg" number="0" ref="Value" />
+
+  <request name="QueryVersion" opcode="0">
+    <reply>
+      <field type="BOOL" name="shared_pixmaps" />
+      <field type="CARD16" name="major_version" />
+      <field type="CARD16" name="minor_version" />
+      <field type="CARD16" name="uid" />
+      <field type="CARD16" name="gid" />
+      <field type="CARD8" name="pixmap_format" />
+    </reply>
+  </request>
+
+  <request name="Attach" opcode="1">
+    <field type="SEG" name="shmseg" />
+    <field type="CARD32" name="shmid" />
+    <field type="BOOL" name="read_only" />
+  </request>
+
+  <request name="Detach" opcode="2">
+    <field type="SEG" name="shmseg" />
+  </request>
+
+  <request name="PutImage" opcode="3">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="GCONTEXT" name="gc" />
+    <field type="CARD16" name="total_width" />
+    <field type="CARD16" name="total_height" />
+    <field type="CARD16" name="src_x" />
+    <field type="CARD16" name="src_y" />
+    <field type="CARD16" name="src_width" />
+    <field type="CARD16" name="src_height" />
+    <field type="INT16" name="dst_x" />
+    <field type="INT16" name="dst_y" />
+    <field type="CARD8" name="depth" />
+    <field type="CARD8" name="format" />
+    <field type="CARD8" name="send_event" />
+    <pad bytes="1" />
+    <field type="SEG" name="shmseg" />
+    <field type="CARD32" name="offset" />
+  </request>
+
+  <request name="GetImage" opcode="4">
+    <field type="DRAWABLE" name="drawable" />
+    <field type="INT16" name="x" />
+    <field type="INT16" name="y" />
+    <field type="CARD16" name="width" />
+    <field type="CARD16" name="height" />
+    <field type="CARD32" name="plane_mask" />
+    <field type="CARD8" name="format" />
+    <pad bytes="3" />
+    <field type="SEG" name="shmseg" />
+    <field type="CARD32" name="offset" />
+    <reply>
+      <field type="CARD8" name="depth" />
+      <field type="VISUALID" name="visual" />
+      <field type="CARD32" name="size" />
+    </reply>
+  </request>
+
+  <request name="CreatePixmap" opcode="5">
+    <field type="PIXMAP" name="pid" />
+    <field type="DRAWABLE" name="drawable" />
+    <field type="CARD16" name="width" />
+    <field type="CARD16" name="height" />
+    <field type="CARD8" name="depth" />
+    <pad bytes="3" />
+    <field type="SEG" name="shmseg" />
+    <field type="CARD32" name="offset" />
+  </request>
+</xcb>
diff --git a/src/sync.xml b/src/sync.xml
new file mode 100644
index 0000000..6efca36
--- /dev/null
+++ b/src/sync.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Mikko Torni and Josh Triplett.
+All Rights Reserved.  See the file COPYING in this directory
+for licensing information.
+-->
+<xcb header="sync" extension-xname="SYNC" extension-name="Sync">
+  <import>xproto</import>
+
+  <xidtype name="ALARM" />
+
+  <enum name="ALARMSTATE">
+    <item name="Active" />
+    <item name="Inactive" />
+    <item name="Destroyed" />
+  </enum>
+
+  <xidtype name="COUNTER" />
+
+  <enum name="TESTTYPE">
+    <item name="PositiveTransition" />
+    <item name="NegativeTransition" />
+    <item name="PositiveComparison" />
+    <item name="NegativeComparison" />
+  </enum>
+
+  <enum name="VALUETYPE">
+    <item name="Absolute" />
+    <item name="Relative" />
+  </enum>
+
+  <enum name="CA">
+    <item name="Counter">  <bit>0</bit></item>
+    <item name="ValueType"><bit>1</bit></item>
+    <item name="Value">    <bit>2</bit></item>
+    <item name="TestType"> <bit>3</bit></item>
+    <item name="Delta">    <bit>4</bit></item>
+    <item name="Events">   <bit>5</bit></item>
+  </enum>
+
+  <struct name="INT64">
+    <field type="INT32" name="hi" />
+    <field type="CARD32" name="lo" />
+  </struct>
+
+  <struct name="SYSTEMCOUNTER">
+    <field type="COUNTER" name="counter" />
+    <field type="INT64" name="resolution" />
+    <field type="CARD16" name="name_len" />
+    <list type="CARD8" name="name">
+      <fieldref>name_len</fieldref>
+    </list>
+  </struct>
+
+  <struct name="TRIGGER">
+    <field type="COUNTER" name="counter" />
+    <field type="VALUETYPE" name="wait_type" />
+    <field type="INT64" name="wait_value" />
+    <field type="TESTTYPE" name="test_type" />
+  </struct>
+
+  <struct name="WAITCONDITION">
+    <field type="TRIGGER" name="trigger" />
+    <field type="INT64" name="event_threshold" />
+  </struct>
+
+  <error name="Counter" number="0">
+    <field type="CARD32" name="bad_counter" />
+    <field type="CARD16" name="minor_opcode" />
+    <field type="CARD8" name="major_opcode" />
+  </error>
+
+  <error name="Alarm" number="1">
+    <field type="CARD32" name="bad_alarm" />
+    <field type="CARD16" name="minor_opcode" />
+    <field type="CARD8" name="major_opcode" />
+  </error>
+    
+  <request name="Initialize" opcode="0">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD8" name="major_version" />
+      <field type="CARD8" name="minor_version" />
+    </reply>
+  </request>
+
+  <request name="ListSystemCounters" opcode="1">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="counters_len" />
+      <pad bytes="20" />
+      <list type="SYSTEMCOUNTER" name="counters">
+        <fieldref>counters_len</fieldref>
+      </list>
+    </reply>
+  </request>
+
+  <request name="CreateCounter" opcode="2">
+    <field type="COUNTER" name="id" />
+    <field type="INT64" name="initial_value" />
+  </request>
+
+  <request name="DestroyCounter" opcode="6">
+    <field type="COUNTER" name="counter" />
+  </request>
+
+  <request name="QueryCounter" opcode="5">
+    <field type="COUNTER" name="counter" />
+    <reply>
+      <pad bytes="1" />
+      <field type="INT64" name="counter_value" />
+    </reply>
+  </request>
+
+  <request name="Await" opcode="7">
+    <list type="WAITCONDITION" name="wait_list" />
+  </request>
+
+  <request name="ChangeCounter" opcode="4">
+    <field type="COUNTER" name="counter" />
+    <field type="INT64" name="amount" />
+  </request>
+
+  <request name="SetCounter" opcode="3">
+    <field type="COUNTER" name="counter" />
+    <field type="INT64" name="value" />
+  </request>
+
+  <request name="CreateAlarm" opcode="8">
+    <field type="ALARM" name="id" />
+    <valueparam value-mask-type="CARD32"
+                value-mask-name="value_mask"
+                value-list-name="value_list" />
+  </request>
+
+  <request name="ChangeAlarm" opcode="9">
+    <field type="ALARM" name="id" />
+    <valueparam value-mask-type="CARD32"
+                value-mask-name="value_mask"
+                value-list-name="value_list" />
+  </request>
+
+  <request name="DestroyAlarm" opcode="11">
+    <field type="ALARM" name="alarm" />
+  </request>
+
+  <request name="QueryAlarm" opcode="10">
+    <field type="ALARM" name="alarm" />
+    <reply>
+      <pad bytes="1" />
+      <field type="TRIGGER" name="trigger" />
+      <field type="INT64" name="delta" />
+      <field type="BOOL" name="events" />
+      <field type="ALARMSTATE" name="state" />
+    </reply>
+  </request>
+
+  <request name="SetPriority" opcode="12">
+    <field type="CARD32" name="id" />
+    <field type="INT32" name="priority" />
+  </request>
+    
+  <request name="GetPriority" opcode="13">
+    <field type="CARD32" name="id" />
+    <reply>
+      <pad bytes="1" />
+      <field type="INT32" name="priority" />
+    </reply>
+  </request>
+
+  <event name="CounterNotify" number="0">
+    <field type="CARD8" name="kind" />
+    <field type="COUNTER" name="counter" />
+    <field type="INT64" name="wait_value" />
+    <field type="INT64" name="counter_value" />
+    <field type="TIMESTAMP" name="timestamp" />
+    <field type="CARD16" name="count" />
+    <field type="BOOL" name="destroyed" />
+  </event>
+
+  <event name="AlarmNotify" number="1">
+    <field type="CARD8" name="kind" />
+    <field type="ALARM" name="alarm" />
+    <field type="INT64" name="counter_value" />
+    <field type="INT64" name="alarm_value" />
+    <field type="TIMESTAMP" name="timestamp" />
+  </event>
+</xcb>
diff --git a/src/xc_misc.xml b/src/xc_misc.xml
new file mode 100644
index 0000000..8643503
--- /dev/null
+++ b/src/xc_misc.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Mikko Torni and Josh Triplett.
+All Rights Reserved.  See the file COPYING in this directory
+for licensing information.
+-->
+<xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc">
+  <request name="GetVersion" opcode="0">
+    <field type="CARD16" name="client_major_version" />
+    <field type="CARD16" name="client_minor_version" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="server_major_version" />
+      <field type="CARD16" name="server_minor_version" />
+    </reply>
+  </request>
+
+  <request name="GetXIDRange" opcode="1">
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="start_id" />
+      <field type="CARD32" name="count" />
+    </reply>
+  </request>
+
+  <request name="GetXIDList" opcode="2">
+    <field type="CARD32" name="count" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="ids_len" />
+      <pad bytes="20" />
+      <list type="CARD32" name="ids">
+        <fieldref>ids_len</fieldref>
+      </list>
+    </reply>
+  </request>
+</xcb>
diff --git a/src/xevie.xml b/src/xevie.xml
new file mode 100644
index 0000000..1e5851f
--- /dev/null
+++ b/src/xevie.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!-- This file describes version 1 of XEVIE. -->
+<xcb header="xevie" extension-xname="XEVIE" extension-name="Xevie">
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD16" name="client_major_version" />
+    <field type="CARD16" name="client_minor_version" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD16" name="server_major_version" />
+      <field type="CARD16" name="server_minor_version" />
+      <pad bytes="20" />
+    </reply>
+  </request>
+
+  <request name="Start" opcode="1">
+    <field type="CARD32" name="screen" />
+    <reply>
+      <pad bytes="1" />
+      <pad bytes="24" />
+    </reply>
+  </request>
+
+  <request name="End" opcode="2">
+    <field type="CARD32" name="cmap" />
+    <reply>
+      <pad bytes="1" />
+      <pad bytes="24" />
+    </reply>
+  </request>
+
+  <enum name="Datatype">
+    <item name="Unmodified" />
+    <item name="Modified" />
+  </enum>
+
+  <!-- The Send request needs to send an arbitrary Event; this type is used
+       to reserve the necessary structure size. -->
+  <struct name="Event">
+    <pad bytes="32" />
+  </struct>
+
+  <request name="Send" opcode="3">
+    <field type="Event" name="event" />
+    <field type="CARD32" name="data_type" /> <!-- Datatype -->
+    <pad bytes="64" />
+    <reply>
+      <pad bytes="1" />
+      <pad bytes="24" />
+    </reply>
+  </request>
+
+  <request name="SelectInput" opcode="4">
+    <field type="CARD32" name="event_mask" />
+    <reply>
+      <pad bytes="1" />
+      <pad bytes="24" />
+    </reply>
+  </request>
+</xcb>
diff --git a/src/xf86dri.xml b/src/xf86dri.xml
new file mode 100644
index 0000000..bb37ca7
--- /dev/null
+++ b/src/xf86dri.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xf86dri" extension-xname="XFree86-DRI" extension-name="XF86Dri">
+
+    <!-- Using http://dri.sourceforge.net/doc/dri_extensions_low_level.txt -->
+
+    <!-- Types -->
+
+    <struct name="DrmClipRect">
+	<field type="INT16" name="x1" />
+	<field type="INT16" name="y1" />
+	<field type="INT16" name="x2" />
+	<field type="INT16" name="x3" />
+    </struct>
+	
+    <!-- Requests -->
+    <request name="QueryVersion" opcode="0">
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD16" name="dri_major_version" />
+	    <field type="CARD16" name="dri_minor_version" />
+	    <field type="CARD32" name="dri_minor_patch" />
+	</reply>
+    </request>
+
+    <request name="QueryDirectRenderingCapable" opcode="1">
+	<field type="CARD32" name="screen" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="BOOL" name="is_capable" />
+	</reply>
+    </request>
+
+    <request name="OpenConnection" opcode="2">
+	<field type="CARD32" name="screen" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="drm_client_key_low" />
+	    <field type="CARD32" name="drm_client_key_high" />
+	    <field type="CARD32" name="sarea_handle_low" />
+	    <field type="CARD32" name="sarea_handle_high" />
+	    <field type="CARD32" name="bus_id_len" />
+	    <pad bytes="12" />
+	    <list type="CARD8" name="bus_id">
+		<fieldref>bus_id_len</fieldref>
+	    </list>
+	</reply>
+    </request>
+
+    <request name="CloseConnection" opcode="3">
+	<field type="CARD32" name="screen" />
+    </request>
+
+    <request name="GetClientDriverName" opcode="4">
+	<field type="CARD32" name="screen" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="client_driver_major_version" />
+	    <field type="CARD32" name="client_driver_minor_version" />
+	    <field type="CARD32" name="client_driver_patch_version" />
+	    <field type="CARD32" name="client_driver_name_len" />
+	    <pad bytes="8" />
+	    <list type="CARD8" name="client_driver_name">
+		<fieldref>client_driver_name_len</fieldref>
+	    </list>
+	</reply>
+    </request>
+
+    <request name="CreateContext" opcode="5">
+	<field type="CARD32" name="visual" />
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="context" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="hw_context" />
+	</reply>
+    </request>
+
+    <request name="DestroyContext" opcode="6">
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="context" />
+    </request>
+
+    <request name="CreateDrawable" opcode="7">
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="drawable" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="hw_drawable_handle" />
+	</reply>
+    </request>
+
+    <request name="DestroyDrawable" opcode="8">
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="drawable" />
+    </request>
+
+    <request name="GetDrawableInfo" opcode="9">
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="drawable" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="drawable_table_index" />
+	    <field type="CARD32" name="drawable_table_stamp" />
+	    <field type="INT16" name="drawable_origin_X" />
+	    <field type="INT16" name="drawable_origin_Y" />
+	    <field type="INT16" name="drawable_size_W" />
+	    <field type="INT16" name="drawable_size_H" />
+	    <field type="CARD32" name="num_clip_rects" />
+	    <pad bytes="4" />
+	    <list type="DrmClipRect" name="clip_rects">
+		<fieldref>num_clip_rects</fieldref>
+	    </list>
+	</reply>
+    </request>
+
+    <request name="GetDeviceInfo" opcode="10">
+	<field type="CARD32" name="screen" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="framebuffer_handle_low" />
+	    <field type="CARD32" name="framebuffer_handle_high" />
+	    <field type="CARD32" name="framebuffer_origin_offset" />
+	    <field type="CARD32" name="framebuffer_size" />
+	    <field type="CARD32" name="framebuffer_stride" />
+	    <field type="CARD32" name="device_private_size" />
+	    <list type="CARD32" name="device_private">
+		<fieldref>device_private_size</fieldref>
+	    </list>
+	</reply>
+    </request>
+
+    <!-- Not in this doc, but specified in Mesa/src/glx/x11/xf86dri.h -->
+    <request name="AuthConnection" opcode="11">
+	<field type="CARD32" name="screen" />
+	<field type="CARD32" name="magic" />
+	<reply>
+	    <pad bytes="1" />
+	    <field type="CARD32" name="authenticated" />
+	</reply>
+    </request>	    
+</xcb>
diff --git a/src/xfixes.xml b/src/xfixes.xml
new file mode 100644
index 0000000..9f890cb
--- /dev/null
+++ b/src/xfixes.xml
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004 Josh Triplett.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+<!-- This file describes version 4 of XFixes. -->
+<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes">
+  <import>xproto</import>
+  <import>render</import>
+  <import>shape</import>
+
+  <!-- Version 1 -->
+  <request name="QueryVersion" opcode="0">
+    <field type="CARD32" name="client_major_version" />
+    <field type="CARD32" name="client_minor_version" />
+    <reply>
+      <pad bytes="1" />
+      <field type="CARD32" name="major_version" />
+      <field type="CARD32" name="minor_version" />
+      <pad bytes="16" />
+    </reply>
+  </request>
+
+  <enum name="SaveSetMode">
+    <item name="Insert" />
+    <item name="Delete" />
+  </enum>
+
+  <enum name="SaveSetTarget">
+    <item name="Nearest" />
+    <item name="Root" />
+  </enum>
+
+  <enum name="SaveSetMapping">
+    <item name="Map" />
+    <item name="Unmap" />
+  </enum>
+
+  <request name="ChangeSaveSet" opcode="1">
+    <field type="BYTE" name="mode" />   <!-- SaveSetMode -->
+    <field type="BYTE" name="target" /> <!-- SaveSetTarget -->
+    <field type="BYTE" name="map" />    <!-- SaveSetMapping -->
+    <pad bytes="1" />
+    <field type="WINDOW" name="window" />
+  </request>
+
+  <enum name="SelectionEvent">
+    <item name="SetSelectionOwner" />
+    <item name="SelectionWindowDestroy" />
+    <item name="SelectionClientClose" />
+  </enum>
+
+  <enum name="SelectionEventMask">
+    <item name="SetSelectionOwner">     <bit>0</bit></item>
+    <item name="SelectionWindowDestroy"><bit>1</bit></item>
+    <item name="SelectionClientClose">  <bit>2</bit></item>
+  </enum>
+
+  <event name="SelectionNotify" number="0">
+    <field type="CARD8"     name="subtype" /> <!-- SelectionEvent -->
+    <field type="WINDOW"    name="window" />
+    <field type="WINDOW"    name="owner" />
+    <field type="ATOM"      name="selection" />
+    <field type="TIMESTAMP" name="timestamp" />
+    <field type="TIMESTAMP" name="selection_timestamp" />
+    <pad bytes="8" />
+  </event>
+
+  <request name="SelectSelectionInput" opcode="2">
+    <field type="WINDOW" name="window" />
+    <field type="ATOM"   name="selection" />
+    <field type="CARD32" name="event_mask" /> <!-- SelectionEventMask -->
+  </request>
+
+  <enum name="CursorNotify">
+    <item name="DisplayCursor" />
+  </enum>
+
+  <enum name="CursorNotifyMask">
+    <item name="DisplayCursor"><bit>0</bit></item>
+  </enum>
+
+  <event name="CursorNotify" number="1">
+    <field type="CARD8"     name="subtype" /> <!-- CursorNotify -->
+    <field type="WINDOW"    name="window" />
+    <field type="CARD32"    name="cursor_serial" />
+    <field type="TIMESTAMP" name="timestamp" />
+    <field type="ATOM"      name="name" /> <!-- Added in version 2 -->
+    <pad bytes="12" />
+  </event>
+
+  <request name="SelectCursorInput" opcode="3">
+    <field type="WINDOW" name="window" />
+    <field type="CARD32" name="event_mask" /> <!-- CursorNotifyMask -->
+  </request>
+
+  <request name="GetCursorImage" opcode="4">
+    <reply>
+      <pad bytes="1" />
+      <field type="INT16"  name="x" />
+      <field type="INT16"  name="y" />
+      <field type="CARD16" name="width" />
+      <field type="CARD16" name="height" />
+      <field type="CARD16" name="xhot" />
+      <field type="CARD16" name="yhot" />
+      <field type="CARD32" name="cursor_serial" />
+      <pad bytes="8" />
+      <list  type="CARD32" name="cursor_image">
+        <op op="*">
+          <fieldref>width</fieldref>
+          <fieldref>height</fieldref>
+        </op>
+      </list>
+    </reply>
+  </request>
+
+  <!-- Version 2 -->
+
+  <xidtype name="REGION" />
+
+  <error name="BadRegion" number="0" />
+
+  <request name="CreateRegion" opcode="5">
+    <field type="REGION"    name="region" />
+    <list  type="RECTANGLE" name="rectangles" />
+  </request>
+
+  <request name="CreateRegionFromBitmap" opcode="6">
+    <field type="REGION" name="region" />
+    <field type="PIXMAP" name="bitmap" />
+  </request>
+
+  <request name="CreateRegionFromWindow" opcode="7">
+    <field type="REGION"     name="region" />
+    <field type="WINDOW"     name="window" />
+    <field type="shape:KIND" name="kind" />
+    <pad bytes="3" />
+  </request>
+
+  <request name="CreateRegionFromGC" opcode="8">
+    <field type="REGION"   name="region" />
+    <field type="GCONTEXT" name="gc" />
+  </request>
+
+  <request name="CreateRegionFromPicture" opcode="9">
+    <field type="REGION"  name="region" />
+    <field type="PICTURE" name="picture" />
+  </request>
+
+  <request name="DestroyRegion" opcode="10">
+    <field type="REGION"  name="region" />
+  </request>
+
+  <request name="SetRegion" opcode="11">
+    <field type="REGION"    name="region" />
+    <list  type="RECTANGLE" name="rectangles" />
+  </request>
+
+  <request name="CopyRegion" opcode="12">
+    <field type="REGION" name="source" />
+    <field type="REGION" name="destination" />
+  </request>
+
+  <request name="UnionRegion" opcode="13">
+    <field type="REGION" name="source1" />
+    <field type="REGION" name="source2" />
+    <field type="REGION" name="destination" />
+  </request>
+
+  <request name="IntersectRegion" opcode="14">
+    <field type="REGION" name="source1" />
+    <field type="REGION" name="source2" />
+    <field type="REGION" name="destination" />
+  </request>
+
+  <request name="SubtractRegion" opcode="15">
+    <field type="REGION" name="source1" />
+    <field type="REGION" name="source2" />
+    <field type="REGION" name="destination" />
+  </request>
+
+  <request name="InvertRegion" opcode="16">
+    <field type="REGION"    name="source" />
+    <field type="RECTANGLE" name="bounds" />
+    <field type="REGION"    name="destination" />
+  </request>
+
+  <request name="TranslateRegion" opcode="17">
+    <field type="REGION" name="region" />
+    <field type="INT16"  name="dx" />
+    <field type="INT16"  name="dy" />
+  </request>
+
+  <request name="RegionExtents" opcode="18"> 	
+    <field type="REGION" name="source" />
+    <field type="REGION" name="destination" />
+  </request>
+
+  <request name="FetchRegion" opcode="19">
+    <field type="REGION" name="region" />
+    <reply>
+      <pad bytes="1" />
+      <field type="RECTANGLE" name="extents" />
+      <pad bytes="16" />
+      <list  type="RECTANGLE" name="rectangles" />
+    </reply>
+  </request>
+
+  <request name="SetGCClipRegion" opcode="20">
+    <field type="GCONTEXT" name="gc" />
+    <field type="REGION"   name="region" />
+    <field type="INT16"    name="x_origin" />
+    <field type="INT16"    name="y_origin" />
+  </request>
+
+  <request name="SetWindowShapeRegion" opcode="21">
+    <field type="WINDOW"     name="dest" />
+    <field type="shape:KIND" name="dest_kind" />
+    <pad bytes="3" />
+    <field type="INT16"      name="x_offset" />
+    <field type="INT16"      name="y_offset" />
+    <field type="REGION"     name="region" />
+  </request>
+
+  <request name="SetPictureClipRegion" opcode="22">
+    <field type="PICTURE" name="picture" />
+    <field type="REGION"  name="region" />
+    <field type="INT16"   name="x_origin" />
+    <field type="INT16"   name="y_origin" />
+  </request>
+
+  <request name="SetCursorName" opcode="23">
+    <field type="CURSOR" name="cursor" />
+    <field type="CARD16" name="nbytes" />
+    <pad bytes="2" />
+    <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
+  </request>
+
+  <request name="GetCursorName" opcode="24">
+    <field type="CURSOR" name="cursor" />
+    <reply>
+      <pad bytes="1" />
+      <field type="ATOM"   name="atom" />
+      <field type="CARD16" name="nbytes" />
+      <pad bytes="18" />
+      <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
+    </reply>
+  </request>
+
+  <request name="GetCursorImageAndName" opcode="25">
+    <reply>
+      <pad bytes="1" />
+      <field type="INT16"  name="x" />
+      <field type="INT16"  name="y" />
+      <field type="CARD16" name="width" />
+      <field type="CARD16" name="height" />
+      <field type="CARD16" name="xhot" />
+      <field type="CARD16" name="yhot" />
+      <field type="CARD32" name="cursor_serial" />
+      <field type="ATOM"   name="cursor_atom" />
+      <field type="CARD16" name="nbytes" />
+      <pad bytes="2" />
+      <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
+      <list  type="CARD32" name="cursor_image">
+        <op op="*">
+          <fieldref>width</fieldref>
+          <fieldref>height</fieldref>
+        </op>
+      </list>
+    </reply>
+  </request>
+
+  <request name="ChangeCursor" opcode="26">
+    <field type="CURSOR" name="source" />
+    <field type="CURSOR" name="destination" />
+  </request>
+
+  <request name="ChangeCursorByName" opcode="27">
+    <field type="CURSOR" name="src" />
+    <field type="CARD16" name="nbytes" />
+    <pad bytes="2" />
+    <list  type="CARD8"  name="name"><fieldref>nbytes</fieldref></list>
+  </request>
+
+  <!-- Version 3 -->
+  <request name="ExpandRegion" opcode="28">
+    <field type="REGION" name="source" />
+    <field type="REGION" name="destination" />
+    <field type="CARD16" name="left" />
+    <field type="CARD16" name="right" />
+    <field type="CARD16" name="top" />
+    <field type="CARD16" name="bottom" />
+  </request>
+  
+  <!-- Version 4 -->
+  <request name="HideCursor" opcode="29">
+    <field type="WINDOW" name="window" />
+  </request>
+
+  <request name="ShowCursor" opcode="30">
+    <field type="WINDOW" name="window" />
+  </request>
+</xcb>
diff --git a/src/xinerama.xml b/src/xinerama.xml
new file mode 100644
index 0000000..2566787
--- /dev/null
+++ b/src/xinerama.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xinerama" extension-xname="XINERAMA" extension-name="Xinerama">
+
+    <!-- Version 1.1 -->
+
+    <import>xproto</import>
+
+    <struct name="ScreenInfo">
+        <field type="INT16" name="x_org" />
+        <field type="INT16" name="y_org" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+    </struct>
+
+    <request name="QueryVersion" opcode="0">
+        <field type="CARD8" name="major" />
+        <field type="CARD8" name="minor" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="major" />
+            <field type="CARD16" name="minor" />
+        </reply>
+    </request>
+
+    <request name="GetState" opcode="1">
+        <field type="WINDOW" name="window" />
+        <reply>
+            <field type="BYTE" name="state" />
+            <field type="WINDOW" name="window" />
+        </reply>
+    </request>
+
+    <request name="GetScreenCount" opcode="2">
+        <field type="WINDOW" name="window" />
+        <reply>
+            <field type="BYTE" name="screen_count" />
+            <field type="WINDOW" name="window" />
+        </reply>
+    </request>
+
+    <request name="GetScreenSize" opcode="3">
+        <field type="WINDOW" name="window" />
+        <field type="SCREEN" name="screen" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="width" />
+            <field type="CARD32" name="height" />
+            <field type="WINDOW" name="window" />
+            <field type="SCREEN" name="screen" />
+        </reply>
+    </request>
+
+    <request name="IsActive" opcode="4">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="state" />
+        </reply>
+    </request>
+
+    <request name="QueryScreens" opcode="5">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="number" />
+            <pad bytes="20" />
+            <list type="ScreenInfo" name="screen_info">
+                <fieldref>number</fieldref>
+            </list>
+        </reply>
+    </request>
+
+</xcb>
diff --git a/src/xprint.xml b/src/xprint.xml
new file mode 100644
index 0000000..11cd7c0
--- /dev/null
+++ b/src/xprint.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2005 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xprint" extension-xname="XpExtension" extension-name="XP">
+    <!-- Conforms to XPRINT 1.0 -->
+
+    <import>xproto</import>
+    
+    <!-- Types -->
+    <struct name="PRINTER">
+        <field type="CARD32" name="nameLen" />
+        <list type="STRING8" name="name">
+            <fieldref>nameLen</fieldref>
+        </list>
+        <!-- Padding -->
+        <field type="CARD32" name="descLen" />
+        <list type="STRING8" name="description">
+            <fieldref>descLen</fieldref>
+        </list>
+        <!-- More padding -->
+    </struct>
+
+    <!--<typedef oldname="CARD32" newname="PCONTEXT" />-->
+    <xidtype name="PCONTEXT" />
+    <typedef oldname="char" newname="STRING8" />
+
+    <!-- "PrintGetDocumentData" -->
+    <enum name="GetDoc">
+        <item name="Finished"><value>0</value></item>
+            <item name="SecondConsumer"><value>1</value></item>
+    </enum>
+
+    <!-- Event Mask ("PrintSelectInput") -->
+    <enum name="EvMask">
+        <item name="NoEventMask"><value>0x00000000</value></item>
+        <item name="PrintMask"><value>0x00000001</value></item>
+        <item name="AttributeMask"><value>0x00000002</value></item>
+    </enum>
+
+    <!-- "PrintNotify" detail -->
+    <enum name="Detail">
+        <item name="StartJobNotify"><value>1</value></item>
+        <item name="EndJobNotify"><value>2</value></item>
+        <item name="StartDocNotify"><value>3</value></item>
+        <item name="EndDocNotify"><value>4</value></item>
+        <item name="StartPageNotify"><value>5</value></item>
+        <item name="EndPageNotify"><value>6</value></item>
+    </enum>
+
+    <!-- "AttributeNotify" detail -->
+    <enum name="Attr">
+        <item name="JobAttr"><value>1</value></item>
+        <item name="DocAttr"><value>2</value></item>
+        <item name="PageAttr"><value>3</value></item>
+        <item name="PrinterAttr"><value>4</value></item>
+        <item name="ServerAttr"><value>5</value></item>
+        <item name="MediumAttr"><value>6</value></item>
+        <item name="SpoolerAttr"><value>7</value></item>
+    </enum>
+    
+    
+    <!-- Requests -->
+    <request name="PrintQueryVersion" opcode="0">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="major_version" />
+            <field type="CARD16" name="minor_version" />
+        </reply>
+    </request>
+
+    <request name="PrintGetPrinterList" opcode="1">
+        <field type="CARD32" name="printerNameLen" />
+        <field type="CARD32" name="localeLen" />
+        <list type="STRING8" name="printer_name">
+            <fieldref>printerNameLen</fieldref>
+        </list>
+        <!-- There's some padding in here... -->
+        <list type="STRING8" name="locale">
+            <fieldref>localeLen</fieldref>
+        </list>
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="listCount" />
+            <pad bytes="20" />
+            <list type="PRINTER" name="printers">
+                <fieldref>listCount</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="PrintRehashPrinterList" opcode="20" />
+
+    <request name="CreateContext" opcode="2">
+        <field type="CARD32" name="context_id" />
+        <field type="CARD32" name="printerNameLen" />
+        <field type="CARD32" name="localeLen" />
+        <list type="STRING8" name="printerName">
+            <fieldref>printerNameLen</fieldref>
+        </list>
+        <!-- padding -->
+        <list type="STRING8" name="locale">
+            <fieldref>localeLen</fieldref>
+        </list>
+    </request>
+
+    <request name="PrintSetContext" opcode="3">
+        <field type="CARD32" name="context" />
+    </request>
+
+    <request name="PrintGetContext" opcode="4">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="context" />
+        </reply>
+    </request>
+
+    <request name="PrintDestroyContext" opcode="5">
+        <field type="CARD32" name="context" />
+    </request>
+
+    <request name="PrintGetScreenOfContext" opcode="6">
+        <reply>
+            <pad bytes="1" />
+            <field type="WINDOW" name="root" />
+        </reply>
+    </request>
+
+    <request name="PrintStartJob" opcode="7">
+        <field type="CARD8" name="output_mode"/>
+    </request>
+
+    <request name="PrintEndJob" opcode="8">
+        <field type="BOOL"  name="cancel" />
+    </request>
+
+    <request name="PrintStartDoc" opcode="9">
+        <field type="CARD8" name="driver_mode" />
+    </request>
+
+    <request name="PrintEndDoc" opcode="10">
+        <field type="BOOL" name="cancel" />
+    </request>
+
+    <request name="PrintPutDocumentData" opcode="11">
+        <field type="DRAWABLE" name="drawable" />
+        <field type="CARD32" name="len_data" />
+        <field type="CARD16" name="len_fmt" />
+        <field type="CARD16" name="len_options" />
+        <list type="BYTE" name="data">
+            <fieldref>len_data</fieldref>
+        </list>
+        <!-- padding -->
+        <list type="STRING8" name="doc_format" />
+        <!-- padding -->
+        <list type="STRING8" name="options" />
+    </request>
+
+    <request name="PrintGetDocumentData" opcode="12">
+        <field type="PCONTEXT" name="context" />
+        <field type="CARD32" name="max_bytes" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="status_code" />
+            <field type="CARD32" name="finished_flag" />
+            <field type="CARD32" name="dataLen" />
+            <pad bytes="12" />
+            <list type="BYTE" name="data">
+                <fieldref>dataLen</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="PrintStartPage" opcode="13">
+        <field type="WINDOW" name="window" />
+    </request>
+
+    <request name="PrintEndPage" opcode="14">
+        <field type="BOOL" name="cancel" />
+        <pad bytes="3" />
+    </request>
+
+    <request name="PrintSelectInput" opcode="15">
+        <field type="PCONTEXT" name="context" />
+        <valueparam value-mask-type="CARD32"
+                    value-mask-name="event_mask"
+                    value-list-name="event_list" />
+    </request>
+
+    <request name="PrintInputSelected" opcode="16">
+        <field type="PCONTEXT" name="context" />
+        <reply>
+            <pad bytes="1" />
+            <valueparam value-mask-type="CARD32"
+                            value-mask-name="event_mask"
+                            value-list-name="event_list" />
+            <valueparam value-mask-type="CARD32"
+                            value-mask-name="all_events_mask"
+                            value-list-name="all_events_list" />
+        </reply>
+    </request>
+
+    <request name="PrintGetAttributes" opcode="17">
+        <field type="PCONTEXT" name="context" />
+        <field type="CARD8" name="pool" />
+        <pad bytes="3" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="stringLen" />
+            <pad bytes="20" />
+            <field type="STRING8" name="attributes" />
+        </reply>
+    </request>
+
+    <request name="PrintGetOneAttributes" opcode="19">
+        <field type="PCONTEXT" name="context" />
+        <field type="CARD32" name="nameLen" />
+        <field type="CARD8" name="pool" />
+        <pad bytes="3" />
+        <list type="STRING8" name="name">
+            <fieldref>nameLen</fieldref>
+        </list>
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="valueLen" />
+            <pad bytes="20" />
+            <list type="STRING8" name="value">
+                <fieldref>valueLen</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="PrintSetAttributes" opcode="18">
+        <field type="PCONTEXT" name="context" />
+        <field type="CARD32" name="stringLen" />
+        <field type="CARD8" name="pool" />
+        <field type="CARD8" name="rule" />
+        <pad bytes="2" />
+        <list type="STRING8" name="attributes" />
+    </request>
+
+    <request name="PrintGetPageDimensions" opcode="21">
+        <field type="PCONTEXT" name="context" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="width" />
+            <field type="CARD16" name="height" />
+            <field type="CARD16" name="offset_x" />
+            <field type="CARD16" name="offset_y" />
+            <field type="CARD16" name="reproducible_width" />
+            <field type="CARD16" name="reproducible_height" />
+        </reply>
+    </request>
+
+    <request name="PrintQueryScreens" opcode="22">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="listCount" />
+            <pad bytes="20" />
+            <list type="WINDOW" name="roots">
+                <fieldref>listCount</fieldref>
+            </list>
+            <!-- There may be a WINDOW rootWindow here... -->
+        </reply>
+    </request>
+
+    <request name="PrintSetImageResolution" opcode="23">
+        <field type="PCONTEXT" name="context" />
+        <field type="CARD16" name="image_resolution" />
+        <reply>
+            <field type="BOOL" name="status" />
+            <field type="CARD16" name="previous_resolutions" />
+        </reply>
+    </request>
+
+    <request name="PrintGetImageResolution" opcode="24">
+        <field type="PCONTEXT" name="context" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="image_resolution" />
+        </reply>
+    </request>
+
+
+    <!-- Events -->
+    <event name="Notify" number="0">
+        <field type="CARD8" name="detail" />
+        <field type="PCONTEXT" name="context" />
+        <field type="BOOL" name="cancel" />
+    </event>
+
+    <event name="AttributNotify" number="1">
+        <field type="CARD8" name="detail" />
+        <field type="PCONTEXT" name="context" />
+    </event>
+
+    <!-- Errors -->
+    <error name="BadContext" number="0" />
+    <error name="BadSequence" number="1" />
+
+</xcb>
+
diff --git a/src/xtest.xml b/src/xtest.xml
new file mode 100644
index 0000000..72adf0b
--- /dev/null
+++ b/src/xtest.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Ian Osgood
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person ob/Sintaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xtest" extension-xname="XTEST" extension-name="Test">
+    <!-- Conforms to XTEST 2.1 -->
+
+    <import>xproto</import>
+    
+    <!-- Requests -->
+    <request name="GetVersion" opcode="0">
+        <field type="CARD8"  name="major_version" />
+        <pad bytes="1" />
+        <field type="CARD16" name="minor_version" />
+        <reply>
+            <field type="CARD8"  name="major_version" />
+            <field type="CARD16" name="minor_version" />
+        </reply>
+    </request>
+
+    <enum name="Cursor">
+        <item name="None">   <value>0</value></item>
+        <item name="Current"><value>1</value></item>
+    </enum>
+
+    <request name="CompareCursor" opcode="1">
+        <field type="WINDOW" name="window" />
+        <field type="CURSOR" name="cursor" />
+        <reply>
+            <field type="BOOL" name="same" />
+        </reply>
+    </request>
+    
+    <!-- There are several ways to use the FakeInput request:
+            1. Simulate a keypress:
+                type   = XCBKeyPress or XCBKeyRelease
+                detail = keycode
+            2. Simulate a button:
+                type   = XCBButtonPress or XCBButtonRelease
+                detail = enum XCBButton (1..5)
+            3. Simulate mouse motion:
+                type   = XCBMotionNotify
+                detail = 0 or 1
+                window = XCBNone or a root window id
+                rootX,
+                rootY  = position (relative if detail==1)
+
+        Version 2.2 adds support for the XInput extension:
+            4. Simulate a device keypress
+            5. Simulate a device button
+            6. Simulate a proximity event
+            7. Simulate a device motion event
+                [These are not yet supported, since we would also need to
+                 send the variable-length state of the axes.]
+
+        In each case, time is set to a delay in milliseconds.
+    -->
+
+    <request name="FakeInput" opcode="2">
+        <field type="BYTE"   name="type" />
+        <field type="BYTE"   name="detail" />
+        <pad bytes="2" />
+        <field type="CARD32" name="time" />
+        <field type="WINDOW" name="window" />
+        <pad bytes="8" />
+        <field type="CARD16" name="rootX" />
+        <field type="CARD16" name="rootY" />
+        <pad bytes="7" />
+        <!-- Version 2.2: XInput device -->
+        <field type="CARD8"  name="deviceid" />
+        <!-- Version 2.2: optional axes state here -->
+    </request>
+
+    <request name="GrabControl" opcode="3">
+        <field type="BOOL" name="impervious" />
+        <pad bytes="3" />
+    </request>
+    
+    <!-- No events or errors -->
+
+</xcb>
\ No newline at end of file
diff --git a/src/xv.xml b/src/xv.xml
new file mode 100644
index 0000000..b232dea
--- /dev/null
+++ b/src/xv.xml
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xv" extension-xname="XVideo" extension-name="Xv">
+    <import>xproto</import>
+    <import>shm</import>
+    <!-- Implements version 2.2 of XV -->
+
+    <!-- XIDs -->
+    <xidtype name="PORT" />
+    <xidtype name="ENCODING" />
+
+    <enum name="Type">
+        <item name="InputMask"><value>0x00000001</value></item>
+        <item name="OutputMask"><value>0x00000002</value></item>
+        <item name="VideoMask"><value>0x00000004</value></item>
+        <item name="StillMask"><value>0x00000008</value></item>
+        <item name="ImageMask"><value>0x00000010</value></item>
+    </enum>
+
+    <enum name="ImageFormatInfoType">
+        <item name="RGB" />
+        <item name="YUV" />
+    </enum>
+
+    <enum name="ImageFormatInfoFormat">
+        <item name="Packed" />
+        <item name="Planar" />
+    </enum>
+
+    <enum name="AttributeFlag">
+        <item name="Gettable"><value>0x01</value></item>
+        <item name="Settable"><value>0x02</value></item>
+    </enum>
+    
+    <struct name="Rational">
+        <field type="INT32" name="numerator" />
+        <field type="INT32" name="denominator" />
+    </struct>
+
+    <struct name="AdaptorInfo">
+        <field type="PORT" name="base_id" />
+        <field type="CARD16" name="name_size" />
+        <field type="CARD16" name="num_ports" />
+        <field type="CARD16" name="num_formats" />
+        <field type="CARD8" name="type" />
+        <field type="CARD8" name="pad" />
+        <list type="char" name="name">
+            <fieldref>name_size</fieldref>
+        </list>
+        <list type="Format" name="formats">
+            <fieldref>num_formats</fieldref>
+        </list>
+
+    </struct>
+
+    <struct name="EncodingInfo">
+        <field type="ENCODING" name="encoding" />
+        <field type="CARD16" name="name_size" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <field type="Rational" name="rate" />
+        <!--
+        Xvproto.h has a padding CARD16 here but the name
+        overlaps.
+        -->
+        <list type="char" name="name">
+            <fieldref>name_size</fieldref>
+        </list>
+    </struct>
+
+    <struct name="Format">
+        <field type="VISUALID" name="visual" />
+        <field type="CARD8" name="depth" />
+    </struct>
+
+    <struct name="Image">
+        <field type="CARD32" name="id" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <field type="CARD32" name="data_size" />
+        <field type="CARD32" name="num_planes" />
+        <list type="CARD32" name="pitches">
+            <fieldref>num_planes</fieldref>
+        </list>
+        <list type="CARD32" name="offsets">
+            <fieldref>num_planes</fieldref>
+        </list>
+        <list type="CARD8" name="data">
+            <fieldref>data_size</fieldref>
+        </list>
+        <!-- Some XPointer "obdata" for SHM use-->
+    </struct>
+    
+    <struct name="AttributeInfo">
+        <field type="CARD32" name="flags" />
+        <field type="INT32" name="min" />
+        <field type="INT32" name="max" />
+        <field type="CARD32" name="size" />
+        <list type="char" name="name">
+            <fieldref>size</fieldref>
+        </list>
+    </struct>
+
+    <struct name="ImageFormatInfo">
+        <field type="CARD32" name="id" />
+        <field type="CARD8" name="type" />
+        <field type="CARD8" name="byte_order" />
+        <field type="CARD16" name="pad1" />
+        <list type="CARD8" name="guid">
+            <value>16</value>
+        </list>
+        <field type="CARD8" name="bpp" />
+        <field type="CARD8" name="num_planes" />
+        <field type="CARD16" name="pad2" />
+        <field type="CARD8" name="depth" />
+        <field type="CARD8" name="pad3" />
+        <field type="CARD16" name="pad4" />
+        <field type="CARD32" name="red_mask" />
+        <field type="CARD32" name="green_mask" />
+        <field type="CARD32" name="blue_mask" />
+        <field type="CARD8" name="format" />
+        <field type="CARD8" name="pad5" />
+        <field type="CARD16" name="pad6" />
+        <field type="CARD32" name="y_sample_bits" />
+        <field type="CARD32" name="u_sample_bits" />
+        <field type="CARD32" name="v_sample_bits" />
+        <field type="CARD32" name="vhorz_y_period" />
+        <field type="CARD32" name="vhorz_u_period" />
+        <field type="CARD32" name="vhorz_v_period" />
+        <field type="CARD32" name="vvert_y_period" />
+        <field type="CARD32" name="vvert_u_period" />
+        <field type="CARD32" name="vvert_v_period" />
+        <list type="CARD8" name="vcomp_order">
+            <value>32</value>
+        </list>
+        <field type="CARD8" name="vscanline_order" />
+        <field type="CARD8" name="vpad7" />
+        <field type="CARD16" name="vpad8" />
+        <field type="CARD32" name="vpad9" />
+        <field type="CARD32" name="vpad10" />
+    </struct>
+
+
+    <!-- Errors -->
+    <error name="BadPort" number="0"/>
+    <error name="BadEncoding" number="1"/>
+    <error name="BadControl" number="2"/>
+
+    <!-- Events -->
+    <event name="VideoNotify" number="0">
+        <field type="BYTE" name="reason" />
+        <field type="TIMESTAMP" name="time" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="PORT" name="port" />
+    </event>
+
+    <event name="PortNotify" number="1">
+        <pad bytes="1" />
+        <field type="TIMESTAMP" name="time" />
+        <field type="PORT" name="port" />
+        <field type="ATOM" name="attribute" />
+        <field type="INT32" name="value" />
+    </event>
+    
+    
+    <!-- Requests -->
+    <request name="QueryExtension" opcode="0">
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="major" />
+            <field type="CARD16" name="minor" />
+        </reply>
+    </request>
+
+    <request name="QueryAdaptors" opcode="1">
+        <field type="WINDOW" name="window" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="num_adaptors" />
+            <pad bytes="22" />
+            <list type="AdaptorInfo" name="info">
+                <fieldref>num_adaptors</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="QueryEncodings" opcode="2">
+        <field type="PORT" name="port" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="num_encodings" />
+            <!--
+            In Xvproto.h this padding is 24 bytes
+            in actuality it is 22 bytes
+            -->
+            <pad bytes="22" />
+            <list type="EncodingInfo" name="info">
+                <fieldref>num_encodings</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="GrabPort" opcode="3">
+        <field type="PORT" name="port" />
+        <field type="TIMESTAMP" name="time" />
+        <reply>
+            <field type="BYTE" name="result" />
+        </reply>
+    </request>
+
+    <request name="UngrabPort" opcode="4">
+        <field type="PORT" name="port" />
+        <field type="TIMESTAMP" name="time" />
+    </request>
+
+    <request name="PutVideo" opcode="5">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="INT16" name="vid_x" />
+        <field type="INT16" name="vid_y" />
+        <field type="CARD16" name="vid_w" />
+        <field type="CARD16" name="vid_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+    </request>
+
+    <request name="PutStill" opcode="6">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="INT16" name="vid_x" />
+        <field type="INT16" name="vid_y" />
+        <field type="CARD16" name="vid_w" />
+        <field type="CARD16" name="vid_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+    </request>
+
+    <request name="GetVideo" opcode="7">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="INT16" name="vid_x" />
+        <field type="INT16" name="vid_y" />
+        <field type="CARD16" name="vid_w" />
+        <field type="CARD16" name="vid_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+    </request>
+
+    <request name="GetStill" opcode="8">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="INT16" name="vid_x" />
+        <field type="INT16" name="vid_y" />
+        <field type="CARD16" name="vid_w" />
+        <field type="CARD16" name="vid_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+    </request>
+
+    <request name="StopVideo" opcode="9">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+    </request>
+
+    <request name="SelectVideoNotify" opcode="10">
+        <field type="DRAWABLE" name="drawable" />
+        <field type="BOOL" name="onoff" />
+    </request>
+
+    <request name="SelectPortNotify" opcode="11">
+        <field type="DRAWABLE" name="drawable" />
+        <field type="BOOL" name="onoff" />
+    </request>
+
+    <request name="QueryBestSize" opcode="12">
+        <field type="PORT" name="port" />
+        <field type="CARD16" name="vid_w" />
+        <field type="CARD16" name="vid_h" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+        <field type="BOOL" name="motion" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="actual_width" />
+            <field type="CARD16" name="actual_height" />
+        </reply>
+    </request>
+
+    <request name="SetPortAttribute" opcode="13">
+        <field type="PORT" name="port" />
+        <field type="ATOM" name="attribute" />
+        <field type="INT32" name="value" />
+    </request>
+
+    <request name="GetPortAttribute" opcode="14">
+        <field type="PORT" name="port" />
+        <field type="ATOM" name="attribute" />
+        <reply>
+            <pad bytes="1" />
+            <field type="INT32" name="value" />
+        </reply>
+    </request>
+
+    <!-- Not in the docs beyond this point :( -->
+
+    <request name="QueryPortAttributes" opcode="15">
+        <field type="PORT" name="port" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num_attributes" />
+            <field type="CARD32" name="text_size" />
+            <pad bytes="16" />
+            <list type="AttributeInfo" name="attributes">
+                <fieldref>num_attributes</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="ListImageFormats" opcode="16">
+        <field type="PORT" name="port" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num_formats" />
+            <pad bytes="20" />
+            <list type="ImageFormatInfo" name="format">
+                <fieldref>num_formats</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="QueryImageAttributes" opcode="17">
+        <field type="PORT" name="port" />
+        <field type="CARD32" name="id" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num_planes" />
+            <field type="CARD32" name="data_size" />
+            <field type="CARD16" name="width" />
+            <field type="CARD16" name="height" />
+            <pad bytes="12" />
+            <list type="CARD32" name="pitches">
+                <fieldref>num_planes</fieldref>
+            </list>
+            <list type="CARD32" name="offsets">
+                <fieldref>num_planes</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="PutImage" opcode="18">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="CARD32" name="id" />
+        <field type="INT16" name="src_x" />
+        <field type="INT16" name="src_y" />
+        <field type="CARD16" name="src_w" />
+        <field type="CARD16" name="src_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <localfield type="CARD32" name="data_size" />
+        <list type="CARD8" name="data">
+            <fieldref>data_size</fieldref>
+        </list>
+    </request>
+
+    <request name="ShmPutImage" opcode="19">
+        <field type="PORT" name="port" />
+        <field type="DRAWABLE" name="drawable" />
+        <field type="GCONTEXT" name="gc" />
+        <field type="SEG" name="shmseg" />
+        <field type="CARD32" name="id" />
+        <field type="CARD32" name="offset" />
+        <field type="INT16" name="src_x" />
+        <field type="INT16" name="src_y" />
+        <field type="CARD16" name="src_w" />
+        <field type="CARD16" name="src_h" />
+        <field type="INT16" name="drw_x" />
+        <field type="INT16" name="drw_y" />
+        <field type="CARD16" name="drw_w" />
+        <field type="CARD16" name="drw_h" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <field type="CARD8" name="send_event" />
+    </request>
+</xcb>
diff --git a/src/xvmc.xml b/src/xvmc.xml
new file mode 100644
index 0000000..e2eb04d
--- /dev/null
+++ b/src/xvmc.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2006 Jeremy Kolb.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the names of the authors or their
+institutions shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the authors.
+-->
+
+<xcb header="xvmc" extension-xname="XVideo-MotionCompensation" extension-name="XvMC">
+    <import>xv</import>
+
+    <xidtype name="CONTEXT" />
+    <xidtype name="SURFACE" />
+    <xidtype name="SUBPICTURE" />
+
+    <struct name="SurfaceInfo">
+        <field type="SURFACE" name="id" />
+        <field type="CARD16" name="chroma_format" />
+        <field type="CARD16" name="pad0" />
+        <field type="CARD16" name="max_width" />
+        <field type="CARD16" name="max_height" />
+        <field type="CARD16" name="subpicture_max_width" />
+        <field type="CARD16" name="subpicture_max_height" />
+        <field type="CARD32" name="mc_type" />
+        <field type="CARD32" name="flags" />
+    </struct>
+    
+    <request name="QueryVersion" opcode="0"> 
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="major" />
+            <field type="CARD32" name="minor" />
+        </reply>
+    </request> 
+
+    <request name="ListSurfaceTypes" opcode="1">
+        <field type="PORT" name="port_id" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num" />
+            <pad bytes="20" />
+            <list type="SurfaceInfo" name="surfaces">
+                <fieldref>num</fieldref>
+            </list>
+        </reply>
+    </request>
+
+    <request name="CreateContext" opcode="2">
+        <field type="CONTEXT" name="context_id" />
+        <field type="PORT" name="port_id" />
+        <field type="SURFACE" name="surface_id" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <field type="CARD32" name="flags" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="width_actual" />
+            <field type="CARD16" name="height_actual" />
+            <field type="CARD32" name="flags_return" />
+            <pad bytes="20" />
+            <list type="CARD32" name="priv_data" />
+        </reply>
+    </request>
+
+    <request name="DestroyContext" opcode="3">
+        <field type="CONTEXT" name="context_id" />
+    </request>
+    
+    <request name="CreateSurface" opcode="4">
+        <field type="SURFACE" name="surface_id" />
+        <field type="CONTEXT" name="context_id" />
+        <reply>
+            <pad bytes="1" />
+            <pad bytes="24" />
+            <list type="CARD32" name="priv_data" />
+        </reply>
+    </request>
+
+    <request name="DestroySurface" opcode="5">
+        <field type="SURFACE" name="surface_id" />
+    </request>
+
+    <request name="CreateSubpicture" opcode="6">
+        <field type="SUBPICTURE" name="subpicture_id" />
+        <field type="CONTEXT" name="context" />
+        <field type="CARD32" name="xvimage_id" />
+        <field type="CARD16" name="width" />
+        <field type="CARD16" name="height" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD16" name="width_actual" />
+            <field type="CARD16" name="height_actual" />
+            <field type="CARD16" name="num_palette_entries" />
+            <field type="CARD16" name="entry_bytes" />
+            <list type="CARD8" name="component_order">
+                <value>4</value>
+            </list>
+            <pad bytes="12" />
+            <list type="CARD32" name="priv_data" />
+        </reply>
+    </request>
+
+    <request name="DestroySubpicture" opcode="7">
+        <field type="SUBPICTURE" name="subpicture_id" />
+    </request>
+
+    <request name="ListSubpictureTypes" opcode="8">
+        <field type="PORT" name="port_id" />
+        <field type="SURFACE" name="surface_id" />
+        <reply>
+            <pad bytes="1" />
+            <field type="CARD32" name="num" />
+            <pad bytes="20" />
+            <list type="ImageFormatInfo" name="types">
+                <fieldref>num</fieldref>
+            </list>
+        </reply>    
+    </request>
+
+</xcb> 


More information about the xcb-commit mailing list