--- /dev/null
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+compile
+config.guess
+config.log
+config.status
+config.sub
+configure
+depcomp
+install-sh
+libtool
+ltmain.sh
+missing
+mkinstalldirs
+*.pc
--- /dev/null
+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.
--- /dev/null
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
--- /dev/null
+SUBDIRS=src
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = xcb-proto.pc
+
+EXTRA_DIST=xcb-proto.pc.in
--- /dev/null
+Last Updated: 01/15/06
+
+Extension Status:
+
+X - Present, tested, works.
+U - Present, untested.
+I - Incomplete.
+
+X BIG-REQESTS
+X COMPOSITE
+X DAMAGE
+ DOUBLE-BUFFER
+X DPMS
+X GLX
+ LBX
+X MIT-SCREEN-SAVER
+X MIT-SHM
+ MIT-SUNDRY-NONSTANDARD
+ Multi-Buffering
+X RANDR
+X RECORD
+X RENDER
+X SHAPE
+X SYNC
+X X-Resource
+ AC-APPGROUP
+X XC-MISC
+X XEVIE
+X XFIXES
+ XFree86-DGA
+U XFree86-DRI
+ XFree86-VidModeExtension
+ XINERAMA
+I XpExtension (XPRINT)
+ XTEST
+X XVideo
+U XVideo-MotionCompensation
+
+
--- /dev/null
+#! /bin/sh
+autoreconf -v --install || exit 1
+./configure "$@"
--- /dev/null
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.57)
+AC_INIT([XCBProto],
+ 0.9,
+ [xcb@lists.freedesktop.org])
+AC_CONFIG_SRCDIR([xcb-proto.pc.in])
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+
+xcbincludedir='${includedir}/X11/XCB'
+AC_SUBST(xcbincludedir)
+
+AC_OUTPUT([Makefile src/Makefile xcb-proto.pc])
--- /dev/null
+compat
+fd.o-*
+stamp-*
+tmp
+files
--- /dev/null
+xcb-proto (0.9-1pre2v2) unstable; urgency=low
+
+ * Change Architecture from any to all; these protocol descriptions are
+ architecture-independent.
+ * Remove fd.o prefix from package name.
+ * Change Maintainer to xcb@lists.freedesktop.org, move myself to
+ Uploaders, and add Jamey Sharp to Uploaders. Update copyright.debian
+ accordingly.
+ * Add Bugs field pointing to xcb@lists.freedesktop.org.
+ * Update homepage URL in description and copyright.debian to
+ http://xcb.freedesktop.org, and put it in a Homepage: field in the
+ description.
+
+ -- Josh Triplett <josh@freedesktop.org> Wed, 23 Mar 2005 13:03:45 -0800
+
+fd.o-xcb-proto (0.9-1) unstable; urgency=low
+
+ * New version with XML protocol descriptions.
+ * Updated Debian packaging.
+
+ -- Josh Triplett <josh@freedesktop.org> Fri, 29 Oct 2004 15:11:09 -0700
+
+fd.o-xcb-proto (0.8-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Jamey Sharp <sharpone@debian.org> Thu, 18 Mar 2004 00:09:03 -0800
+
--- /dev/null
+Source: xcb-proto
+Section: libdevel
+Priority: optional
+Maintainer: XCB Developers <xcb@lists.freedesktop.org>
+Uploaders: Jamey Sharp <sharpone@debian.org>, Josh Triplett <josh@freedesktop.org>
+Build-Depends: cdbs, debhelper (>= 4.0.0), autoconf, automake1.9 | automaken
+Build-Conflicts: automake1.4, automake1.5, automake1.6
+Standards-Version: 3.6.1
+Bugs: mailto:xcb@lists.freedesktop.org
+
+Package: xcb-proto
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: X C Binding - protocol descriptions
+ Xlib has been the standard C binding for the X Window System protocol
+ for many years now. It is an excellent piece of work, but there are
+ applications for which it is not ideal. XCB builds on nearly two
+ decades of experience with X specifically and software engineering in
+ general in an effort to replace the aging Xlib code base.
+ .
+ xcb-proto contains descriptions of the X core protocol and selected
+ extensions in an XML-based data format. XCB uses these descriptions to
+ generate much of its code. You only need this package if you want to compile
+ XCB or otherwise make use of these protocol descriptions.
+ .
+ Homepage: http://xcb.freedesktop.org
--- /dev/null
+This package was debianized by Jamey Sharp <sharpone@debian.org> on
+Thu, 18 Mar 2004 00:48:42 -0800, and later updated by Josh Triplett
+<josh@freedesktop.org>. The package is co-maintained by the XCB developers
+via the XCB mailing list <xcb@lists.freedesktop.org>.
+
+It was downloaded from http://xcb.freedesktop.org.
+
+Upstream Authors: Jamey Sharp <sharpone@debian.org>
+ Josh Triplett <josh@freedesktop.org>
+
+Copyright:
+
--- /dev/null
+doc/xml-xcb.txt
--- /dev/null
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+
+DEB_CONFIGURE_INCLUDEDIR = "\$${prefix}/X11R6/include"
+
+debian/stamp-autotools-files:
+ autoreconf -v --install
+ touch debian/stamp-autotools-files
+
+debian/copyright: debian/copyright.debian COPYING
+ cat $+ > $@
+
+clean::
+ -rm -f debian/copyright
+
+common-install-prehook-arch common-install-prehook-indep:: debian/copyright
--- /dev/null
+ XML-XCB
+
+Description
+===========
+
+XML-XCB generates C bindings to the X Window System protocol based on XML
+descriptions of the protocol. It is designed for use with XCB, the X C
+binding <http://xcb.freedesktop.org>. XML-XCB consists of:
+
+xcb.xsd An XML Schema defining the data format for describing the X
+ protocol. Included in xcb-proto.
+
+c-client.xsl An XSLT code generator that transforms the protocol descriptions
+ into C bindings. Included in xcb.
+
+*.xml XML descriptions of the core X protocol and many extensions.
+ Included in xcb-proto.
+
+
+Dependencies
+============
+
+c-client.xsl requires an XSLT processor that supports XSLT 1.0
+<http://www.w3.org/TR/1999/REC-xslt-19991116> and the EXSLT node-set extension
+<http://www.exslt.org/exsl/functions/node-set/index.html>. The XCB build
+system currently uses xsltproc. You can get xsltproc through your
+distribution's packaging system, or from <http://xmlsoft.org/XSLT/>.
+
+
+Generating C bindings
+=====================
+
+The C bindings for the core protocol and all the currently supported
+extensions are built as part of the xcb build system. However, for the
+purposes of creating and debugging new protocol descriptions, it can be useful
+to generate the bindings directly by invoking c-client.xsl to the XML protocol
+description.
+
+You must provide several parameters to c-client.xsl:
+
+mode: header or source; specifies which part of the C bindings to generate.
+base-path: path to the core X protocol descriptions.
+extension-path: path to the extension descriptions.
+
+For example, using xsltproc, you can generate the header for a protocol
+description "protocol.xml" with the command:
+
+xsltproc --stringparam base-path /path/to/xcb-proto/src \
+ --stringparam extension-path /path/to/xcb-proto/src/extensions \
+ --stringparam mode header /path/to/xcb/src/c-client.xsl protocol.xml
+
+
+Protocol Description Format
+===========================
+
+Root element
+------------
+
+<xcb header="string" extension-name="string" extension-xname="string">
+ top-level elements
+</xcb>
+
+ This is the root element of a protocol description. The attributes are all
+ various forms of the extension name. header is the basename of the XML
+ protocol description file, which will be used as the basename for generated
+ bindings as well. extension-name is the name of the extension in InterCaps,
+ which will be used in the names of functions. extension-xname is the name
+ of the extension as passed to QueryExtension.
+
+ As an example, the XML-XCB description for the GO-FASTER extension would use
+ the root element <xcb header="gofaster" extension-name="GoFaster"
+ extension-xname="GO-FASTER">; as a result, C bindings will be put in
+ gofaster.h and gofaster.c, extension functions will be named
+ XCBGoFasterFunctionName, and the extension initialization will call
+ QueryExtension with the name "GO-FASTER".
+
+ This element can contain any number of the elements listed in the section
+ "Top-Level Elements" below.
+
+
+Top-Level Elements
+------------------
+
+<import>header_name</import>
+
+ The import element allows the protocol description to reference types
+ declared in another extension. The content is be the basename of the
+ extension XML file, which is also the header attribute of the extension's
+ root node. Note that types from xcb_types and xproto are automatically
+ available, without explicitly importing them.
+
+<struct name="identifier">structure contents</struct>
+
+ This element represents a data structure. The name attribute gives the name
+ of the structure. The content represents the fields of the structure, and
+ consists of one or more of the field, pad, and list elements described in
+ the section "Structure Contents" below.
+
+<union name="identifier">structure contents</union>
+
+ This element represents a union of data types, which can hold one value of
+ any of those types. The name attribute gives the name of the union. The
+ content represents the fields of the union, and consists of one or more of
+ the field and pad elements described in the section "Structure Contents
+ below".
+
+<xidtype name="identifier" />
+
+ This element represents an identifier for a particular type of resource.
+ The name attribute gives the name of the new type.
+
+<enum name="identifier">
+ <item name="identifier">[optional expression]</item>
+ ...
+</enum>
+
+ The enum element represents an enumeration type, which can take on any of
+ the values given by the contained item elements. The name attribute on the
+ enum gives the name of the enumerated type.
+
+ The item element represents one possible value of an enumerated type. The
+ name attribute on the item gives the name of that value, and the optional
+ content is an expression giving the numeric value. If the expression is
+ omitted, the value will be one more than that of the previous item, or 0 for
+ the first item.
+
+<typedef oldname="identifier" newname="identifier" />
+
+ The typedef element declares the type given by the newname attribute to be
+ an alias for the type given by the oldname attribute.
+
+<request name="identifier" opcode="integer" [combine-adjacent="true"]>
+ structure contents
+ [<reply>structure contents</reply>]
+</request>
+
+ The request element represents an X protocol request. The name attribute
+ gives the name of the request, and the opcode attribute gives the numeric
+ request code. The content of the request element represents the fields in
+ the request, and consists of one or more of any of the elements listed in
+ the "Structure Contents" section below. Note that for requests in the core
+ protocol, the first field in the request goes into the one-byte gap between
+ the major opcode and the length; if the request does not have any data in
+ that gap, put a one byte pad as the first element. Extension requests
+ always have this gap filled with the minor opcode.
+
+ The optional reply element is present if the request has a reply. The
+ content of the reply element represents the fields in the reply, and
+ consists of zero or more of the field, pad, and list elements listed in the
+ "Structure Contents" section below. Note that the first field in the reply
+ always goes into the one-byte gap between the response type and the sequence
+ number; if the reply does not have any data in that gap, put a one byte pad
+ as the first element.
+
+ If the optional combine-adjacent attribute is true, multiple adjacent
+ requests of the same type may be combined into a single request without
+ affecting the semantics of the requests.
+
+<event name="identifier" number="integer" [no-sequence-number="true"]>
+ structure contents
+</event>
+
+ This element represents an X protocol event. The name attribute gives the
+ name of the event, and the number attribute gives the event number. The
+ content of the event element represents the fields in the event, and
+ consists of zero or more of the field, pad, and list elements listed in the
+ "Structure Contents" section below.
+
+ If the optional no-sequence-number attribute is true, the event does not
+ include a sequence number. This is a special-case for the KeymapNotify
+ event in the core protocol, and should not be used in any other event.
+
+<error name="identifier" number="integer">
+ structure contents
+</error>
+
+ This element represents an X protocol error. The name attribute gives the
+ name of the error, and the number attribute gives the error number. The
+ content of the error element represents the fields in the error, and
+ consists of zero or more of the field, pad, and list elements listed in the
+ "Structure Contents" section below.
+
+<eventcopy name="identifier" number="identifier" ref="identifier" />
+
+ This element creates an alias for the event named in the ref attribute, with
+ the new name given in the name attribute, and the new event number given in
+ the number attribute.
+
+<eventcopy name="identifier" number="identifier" ref="identifier" />
+
+ This element creates an alias for the error named in the ref attribute, with
+ the new name given in the name attribute, and the new error number given in
+ the number attribute.
+
+
+Structure Contents
+------------------
+
+Note: "type" attributes below refer to types defined by previous elements,
+either in the current extension, xproto, xcb_types, or one of the imported
+extensions. The type name must refer to only one possible type; if more than
+one type matches, an error occurs. To avoid this, the type may be explicitly
+prefixed with a namespace, which should be the value of the header attribute
+on the protocol description containing the desired type. The namespace and
+type are separated by a single colon. For example, to refer to the PIXMAP
+type defined in glx rather than the one defined in xcb_types, use
+type="glx:PIXMAP" rather than type="PIXMAP".
+
+<pad bytes="integer" />
+
+ This element declares some padding in a data structure. The bytes
+ attribute declares the number of bytes of padding.
+
+<field type="identifier" name="identifier" />
+
+ This element represents a field in a data structure. The type attribute
+ declares the data type of the field, and the name attribute gives the name
+ of the field.
+
+<list type="identifier" name="identifier">expression</list>
+
+ This element represents an array or list of fields in a data structure. The
+ type attribute declares the data type of the field, and the name attribute
+ gives the name of the field. The content is an expression giving the length
+ of the list in terms of other fields in the structure. See the section
+ "Expressions" for details on the expression representation.
+
+<localfield type="identifier" name="identifier" />
+
+ This element represents a parameter in a request that is not sent over the
+ wire. The field can be referenced in the length expressions of lists or in
+ an exprfield. The type attribute declares the data type of the field, and
+ the name attribute gives the name of the field.
+
+<exprfield type="identifier" name="identifier">expression</exprfield>
+
+ This element represents a field in a request that is calculated rather than
+ supplied by the caller. The type attribute declares the data type of the
+ field, and the name attribute gives the name of the field. The content is
+ the expression giving the value of the field. See the section "Expressions"
+ for details on the expression representation.
+
+<valueparam value-mask-type="identifier" value-mask-name="identifier"
+ value-list-name="identifier" />
+
+ This element represents a BITMASK/LISTofVALUE parameter pair: a bitmask
+ defining the set of values included, and a list containing these values.
+ value-mask-type gives the type of the bitmask; this must be CARD16 or
+ CARD32. value-mask-name gives the field name of the bitmask, and
+ value-list-name gives the field name of the list of values.
+
+
+Expressions
+-----------
+
+ Expressions consist of a tree of <op> elements with leaves consisting of
+ <fieldref> or <value> elements.
+
+<op op="operator">expression expression</op>
+
+ The op element represents an operator, with the op attribute specifying
+ which operator. The supported operations are *, /, &, and <<, and
+ their semantics are identical to the corresponding operators in C. The two
+ operand expressions may be fieldref, value, or op elements.
+
+<fieldref>identifier</fieldref>
+
+ The fieldref element represents a reference to the value of another field in
+ the structure containing this expression. The identifier is the value of
+ the "name" attribute on the referenced field.
+
+<value>integer</value>
+
+ The value element represents a literal integer value in an expression. The
+ integer may be expressed in decimal or hexadecimal.
--- /dev/null
+Makefile
+Makefile.in
--- /dev/null
+nobase_xcbinclude_HEADERS = xcb.xsd \
+ xcb_types.xml \
+ 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/shape.xml \
+ extensions/shm.xml \
+ extensions/sync.xml \
+ extensions/xc_misc.xml \
+ extensions/xevie.xml \
+ extensions/xf86dri.xml \
+ extensions/xfixes.xml \
+ extensions/xprint.xml \
+ extensions/xv.xml \
+ extensions/xvmc.xml
--- /dev/null
+<?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>
--- /dev/null
+<?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.2 of COMPOSITE. -->
+<xcb header="composite" extension-xname="Composite" extension-name="Composite">
+ <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>
+</xcb>
--- /dev/null
+<?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>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>
--- /dev/null
+<?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>
--- /dev/null
+<?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 -->
+
+ <xidtype name="PIXMAP" />
+ <xidtype name="CONTEXT" />
+ <xidtype name="PBUFFER" />
+ <xidtype name="WINDOW" />
+ <xidtype name="FBCONFIG" />
+ <xidtype name="DRAWABLE" />
+
+ <typedef oldname="float" newname="FLOAT32" />
+ <typedef oldname="double" newname="FLOAT64" />
+ <typedef oldname="CARD32" newname="BOOL32" />
+
+ <!-- Errors -->
+ <error name="Generic">
+ <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="CARD32" name="context_tag" />
+ <list type="BYTE" name="data" />
+ </request>
+
+ <request name="RenderLarge" opcode="2">
+ <field type="CARD32" 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="CARD32" 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="CARD32" name="old_context_tag" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" 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="CARD32" name="context_tag" />
+ </request>
+
+ <request name="WaitX" opcode="9">
+ <field type="CARD32" 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="CARD32" 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="CARD32" name="context_tag" />
+ <field type="glx:DRAWABLE" name="drawable" />
+ </request>
+
+ <request name="UseXFont" opcode="12">
+ <field type="CARD32" 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="xcb_types:PIXMAP" name="pixmap" />
+ <field type="glx:PIXMAP" name="glxpixmap" />
+ </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_props" />
+ <pad bytes="16" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </reply>
+ </request>
+
+ <request name="DestroyGLXPixmap" opcode="15">
+ <field type="glx:PIXMAP" name="glxpixmap" />
+ </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="CARD32" name="context_tag" />
+ <list type="BYTE" name="data" />
+ </request>
+
+ <request name="VendorPrivateWithReply" opcode="17">
+ <field type="CARD32" name="vendor_code" />
+ <field type="CARD32" 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 byes="16" />
+ </reply>
+ </request>
+
+ <request name="QueryServerString" opcode="19">
+ <field type="CARD32" name="screen" />
+ <field type="CARD32" name="name" />
+ <reply>
+ <pad bytes="1" />
+ <pad bytes="4" />
+ <field type="CARD32" name="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" />
+ </reply>
+ </request>
+
+ <request name="CreatePixmap" opcode="22">
+ <field type="CARD32" name="screen" />
+ <field type="CARD32" name="fbconfig" />
+ <field type="xcb_types:PIXMAP" name="pixmap" />
+ <field type="glx:PIXMAP" name="glxpixmap" />
+ <field type="CARD32" name="num_attribs" />
+ </request>
+
+ <request name="DestroyPixmap" opcode="23">
+ <field type="glx:PIXMAP" name="glxpixmap" />
+ </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="CARD32" 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="CARD32" name="context_tag" />
+ <pad byes="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="xcb_types: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="CARD32" name="context_tag" />
+ <field type="CARD32" name="list" />
+ <field type="CARD32" name="mode" />
+ </request>
+
+ <request name="EndList" opcode="102">
+ <field type="CARD32" name="context_tag" />
+ </request>
+
+ <request name="DeleteLists" opcode="103">
+ <field type="CARD32" name="context_tag" />
+ <field type="CARD32" name="list" />
+ <field type="INT32" name="range" />
+ </request>
+
+ <request name="GenLists" opcode="104">
+ <field type="CARD32" 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="CARD32" name="context_tag" />
+ <field type="INT32" name="size" />
+ <field type="INT32" name="type" />
+ </request>
+
+ <request name="SelectBuffer" opcode="106">
+ <field type="CARD32" 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="CARD32" 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="CARD32" name="context_tag" />
+ <reply>
+ <pad bytes="1" />
+ </reply>
+ </request>
+
+ <request name="PixelStoref" opcode="109">
+ <field type="CARD32" name="context_tag" />
+ <field type="CARD32" name="pname" />
+ <field type="FLOAT32" name="datum" />
+ </request>
+
+ <request name="PixelStorei" opcode="110">
+ <field type="CARD32" name="context_tag" />
+ <field type="CARD32" name="pname" />
+ <field type="INT32" name="datum" />
+ </request>
+
+ <request name="ReadPixels" opcode="111">
+ <field type="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" name="context_tag" />
+ <reply>
+ <pad bytes="1" />
+ <field type="INT32" name="error" />
+ </reply>
+ </request>
+
+ <request name="GetFloatv" opcode="116">
+ <field type="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" name="context_tag" />
+ </request>
+
+ <request name="AreTexturesResident" opcode="143">
+ <field type="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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="CARD32" 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>
--- /dev/null
+<?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 -->
+
+ <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" />i
+ <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>
--- /dev/null
+<?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>
--- /dev/null
+<?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.8 -->
+
+ <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">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </item>
+ <item name="AlphaMap">
+ <op op="<<"><value>1</value><value>1</value></op>
+ </item>
+ <item name="AlphaXOrigin">
+ <op op="<<"><value>1</value><value>2</value></op>
+ </item>
+ <item name="AlphaYOrigin">
+ <op op="<<"><value>1</value><value>3</value></op>
+ </item>
+ <item name="ClipXOrigin">
+ <op op="<<"><value>1</value><value>4</value></op>
+ </item>
+ <item name="ClipYOrigin">
+ <op op="<<"><value>1</value><value>5</value></op>
+ </item>
+ <item name="ClipMask">
+ <op op="<<"><value>1</value><value>6</value></op>
+ </item>
+ <item name="GraphicsExposure">
+ <op op="<<"><value>1</value><value>7</value></op>
+ </item>
+ <item name="SubwindowMode">
+ <op op="<<"><value>1</value><value>8</value></op>
+ </item>
+ <item name="PolyEdge">
+ <op op="<<"><value>1</value><value>9</value></op>
+ </item>
+ <item name="PolyMode">
+ <op op="<<"><value>1</value><value>10</value></op>
+ </item>
+ <item name="Dither">
+ <op op="<<"><value>1</value><value>11</value></op>
+ </item>
+ <item name="ComponentAlpha">
+ <op op="<<"><value>1</value><value>12</value></op>
+ </item>
+ </enum>
+
+ <enum name="SubPixel">
+ <item name="Unknown" />
+ <item name="HorizontalRGB" />
+ <item name="HorizontalBGR" />
+ <item name="VerticalRGB" />
+ <item name="VerticalBGR" />
+ <item name="None" />
+ </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="TRAP">
+ <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="TRAP" 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>
+
+ <struct name="GLYPHSETELT">
+ <field type="CARD8" name="len" />
+ <pad bytes="3" />
+ <field type="INT16" name="deltax" />
+ <field type="INT16" name="deltay" />
+ <field type="GLYPHSET" name="glyphset" />
+ </struct>
+
+ <!-- CompositeGlyphs8 -->
+
+ <struct name="GLYPHELT8">
+ <field type="CARD8" name="len" />
+ <pad bytes="3" />
+ <field type="INT16" name="deltax" />
+ <field type="INT16" name="deltay" />
+ <list type="CARD8" name="glyphs">
+ <fieldref>len</fieldref>
+ </list>
+ </struct>
+
+ <union name="GLYPHITEM8">
+ <field type="GLYPHELT8" name="glyphelt" />
+ <field type="GLYPHSETELT" name="glyphset" />
+ </union>
+
+ <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="GLYPHITEM8" name="glyphcmds" />
+ </request>
+
+ <!-- CompositeGlyphs16 -->
+
+ <struct name="GLYPHELT16">
+ <field type="CARD8" name="len" />
+ <pad bytes="3" />
+ <field type="INT16" name="deltax" />
+ <field type="INT16" name="deltay" />
+ <list type="CARD16" name="glyphs">
+ <fieldref>len</fieldref>
+ </list>
+ </struct>
+
+ <union name="GLYPHITEM16">
+ <field type="GLYPHELT16" name="glyphelt" />
+ <field type="GLYPHSETELT" name="glyphset" />
+ </union>
+
+ <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="GLYPHITEM16" name="glyphcmds" />
+ </request>
+
+ <!-- CompositeGlyphs32 -->
+
+ <struct name="GLYPHELT32">
+ <field type="CARD8" name="len" />
+ <pad bytes="3" />
+ <field type="INT16" name="deltax" />
+ <field type="INT16" name="deltay" />
+ <list type="CARD32" name="glyphs">
+ <fieldref>len</fieldref>
+ </list>
+ </struct>
+
+ <union name="GLYPHITEM32">
+ <field type="GLYPHELT32" name="glyphelt" />
+ <field type="GLYPHSETELT" name="glyphset" />
+ </union>
+
+ <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="GLYPHITEM32" 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>
+</xcb>
--- /dev/null
+<?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>
--- /dev/null
+<!--
+
+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.0
+-->
+<xcb header="screensaver" extension-xname="SCREENSAVER" extension-name="ScreenSaver">
+ <!-- Types -->
+
+ <enum name="KIND">
+ <item name="Blanked" />
+ <item name="Internal" />
+ <item name="External" />
+ </enum>
+
+ <enum name="EVENT">
+ <item name="NotifyMask">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </item>
+ <item name="CycleMask">
+ <op op="<<"><value>1</value><value>1</value></op>
+ </item>
+ </enum>
+
+ <enum name="STATE">
+ <item name="Off" />
+ <item name="On" />
+ <item name="Cycle" />
+ <item name="Disabled" />
+ </enum>
+
+ <enum name="CLASS">
+ <item name="CopyFromParent" />
+ <item name="InputOutput" />
+ <item name="InputOnly" />
+ </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="CARD8" name="server_major_version"/>
+ <field type="CARD8" name="server_minor_version"/>
+ <pad bytes="22"/>
+ </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="CARD16" name="event_mask" />
+ <field type="KIND" name="kind"/>
+ <pad bytes="10"/>
+ </reply>
+ </request>
+
+ <request name="SelectInput" opcode="2">
+ <field type="DRAWABLE" name="drawable"/>
+ <field type="EVENT" name="event_mask" />
+ </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="CLASS" name="class"/>
+ <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>
+
+ <!-- Events -->
+
+ <event name="Notify" number="0">
+ <field type="CARD8" name="code"/>
+ <field type="STATE" name="state"/>
+ <field type="CARD16" name="sequence_number"/>
+ <field type="TIMESTAMP" name="time"/>
+ <field type="WINDOW" name="root"/>
+ <field type="WINDOW" name="window"/>
+ <field type="KIND" name="kind"/>
+ <field type="BOOL" name="forced"/>
+ <pad bytes="14"/>
+ </event>
+
+</xcb>
--- /dev/null
+<?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="shape" extension-xname="SHAPE" extension-name="Shape">
+ <typedef oldname="CARD8" newname="SHAPE_OP" />
+ <typedef oldname="CARD8" newname="SHAPE_KIND" />
+
+ <!-- Shape attributes of type SHAPE_OP. -->
+ <enum name="SO">
+ <item name="Set" />
+ <item name="Union" />
+ <item name="Intersect" />
+ <item name="Substract" />
+ <item name="Invert" />
+ </enum>
+
+ <!-- Shape attributes of type SHAPE_KIND. -->
+ <enum name="SK">
+ <item name="Bounding" />
+ <item name="Clip" />
+ </enum>
+
+ <event name="Notify" number="0">
+ <field type="SHAPE_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="SHAPE_OP" name="operation" />
+ <field type="SHAPE_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="SHAPE_OP" name="operation" />
+ <field type="SHAPE_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="SHAPE_OP" name="operation" />
+ <field type="SHAPE_KIND" name="destination_kind" />
+ <field type="SHAPE_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="SHAPE_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="SHAPE_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>
--- /dev/null
+<?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">
+ <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>
--- /dev/null
+<?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">
+ <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>
+
+ <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>
--- /dev/null
+<?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="XID" 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="XID" name="ids">
+ <fieldref>ids_len</fieldref>
+ </list>
+ </reply>
+ </request>
+</xcb>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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 3 of XFixes. -->
+<xcb header="xfixes" extension-xname="XFIXES" extension-name="XFixes">
+ <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">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </item>
+ <item name="SelectionWindowDestroy">
+ <op op="<<"><value>1</value><value>1</value></op>
+ </item>
+ <item name="SelectionClientClose">
+ <op op="<<"><value>1</value><value>2</value></op>
+ </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">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </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>
+</xcb>
--- /dev/null
+<?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 -->
+
+ <!-- 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">0</item>
+ <item name="SecondConsumer">1</item>
+ </enum>
+
+ <!-- Event Mask ("PrintSelectInput") -->
+ <enum name="EvMask">
+ <item name="NoEventMask">0x00000000</item>
+ <item name="PrintMask">0x00000001</item>
+ <item name="AttributeMask">0x00000002</item>
+ </enum>
+
+ <!-- "PrintNotify" detail -->
+ <enum name="Detail">
+ <item name="StartJobNotify">1</item>
+ <item name="EndJobNotify">2</item>
+ <item name="StartDocNotify">3</item>
+ <item name="EndDocNotify">4</item>
+ <item name="StartPageNotify">5</item>
+ <item name="EndPageNotify">6</item>
+ </enum>
+
+ <!-- "AttributeNotify" detail -->
+ <enum name="Attr">
+ <item name="JobAttr">1</item>
+ <item name="DocAttr">2</item>
+ <item name="PageAttr">3</item>
+ <item name="PrinterAttr">4</item>
+ <item name="ServerAttr">5</item>
+ <item name="MediumAttr">6</item>
+ <item name="SpoolerAttr">7</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>
+
--- /dev/null
+<?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>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>
--- /dev/null
+<?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 byte="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>
--- /dev/null
+<?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.
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <!-- The root element -->
+ <xsd:element name="xcb">
+ <xsd:complexType>
+ <xsd:group ref="macro" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:attribute name="header" type="xsd:string" />
+ <xsd:attribute name="extension-xname" type="xsd:string" use="optional" />
+ <xsd:attribute name="extension-name" type="xsd:string" use="optional" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Padding -->
+ <xsd:element name="pad">
+ <xsd:complexType>
+ <xsd:attribute name="bytes" type="xsd:integer" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Type for fields or parameters with attributes "name" and "type" -->
+ <xsd:complexType name="var">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ </xsd:complexType>
+
+ <!-- field replaces FIELD, PARAM, and REPLY. -->
+ <xsd:element name="field" type="var" />
+
+ <!-- list replaces ARRAYFIELD, LISTPARAM, and ARRAYREPLY. The name and type
+ are specified as attributes. The content is an expression giving the
+ length. -->
+ <xsd:element name="list">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="var">
+ <xsd:group ref="expression" minOccurs="0" maxOccurs="1" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- Parameters in requests that are not sent with the request. -->
+ <xsd:element name="localfield" type="var" />
+
+ <!-- Expressions -->
+ <xsd:group name="expression">
+ <xsd:choice>
+ <xsd:element name="op">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:group ref="expression" />
+ <xsd:group ref="expression" />
+ </xsd:sequence>
+ <xsd:attribute name="op">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="\+|-|\*|/|&|<<" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="fieldref" type="xsd:string" />
+ <xsd:element name="value" type="dec-or-hex-integer" />
+ </xsd:choice>
+ </xsd:group>
+
+ <!-- Fields in requests that are calculated from other information, not
+ supplied by the caller. -->
+ <xsd:element name="exprfield" >
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="var">
+ <xsd:group ref="expression" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+
+ <!-- BITMASK/LISTofVALUE parameter pairs. -->
+ <xsd:element name="valueparam">
+ <xsd:complexType>
+ <xsd:attribute name="value-mask-type" type="xsd:string" />
+ <xsd:attribute name="value-mask-name" type="xsd:string" />
+ <xsd:attribute name="value-list-name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:group name="fields">
+ <xsd:choice>
+ <xsd:element ref="pad" />
+ <xsd:element ref="field" />
+ <xsd:element ref="list" />
+ </xsd:choice>
+ </xsd:group>
+
+ <!-- Type for a structure -->
+ <xsd:complexType name="struct">
+ <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+
+ <!-- Type for a packet structure -->
+ <xsd:complexType name="packet-struct">
+ <xsd:group ref="fields" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="number" type="xsd:integer" />
+ </xsd:complexType>
+
+ <!-- Type for a packet structure copy -->
+ <xsd:complexType name="packet-struct-copy">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="number" type="xsd:integer" />
+ <xsd:attribute name="ref" type="xsd:string" />
+ </xsd:complexType>
+
+ <!-- Type for hex integers -->
+ <xsd:simpleType name="hex-integer">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="0x[0-9a-fA-F]+" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- Type for integers in either decimal or hex -->
+ <xsd:simpleType name="dec-or-hex-integer">
+ <xsd:union memberTypes="xsd:integer hex-integer" />
+ </xsd:simpleType>
+
+ <xsd:group name="macro">
+ <xsd:choice>
+ <xsd:element name="request">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:group ref="fields" />
+ <xsd:element ref="localfield" />
+ <xsd:element ref="exprfield" />
+ <xsd:element ref="valueparam" />
+ </xsd:choice>
+ <xsd:element name="reply" minOccurs="0" maxOccurs="1">
+ <xsd:complexType>
+ <xsd:group ref="fields" minOccurs="1" maxOccurs="unbounded" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="opcode" type="xsd:integer" />
+ <xsd:attribute name="combine-adjacent" type="xsd:boolean" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="event">
+ <xsd:complexType>
+ <xsd:complexContent>
+ <xsd:extension base="packet-struct">
+ <xsd:attribute name="no-sequence-number" type="xsd:boolean" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="eventcopy" type="packet-struct-copy" />
+ <xsd:element name="error" type="packet-struct" />
+ <xsd:element name="errorcopy" type="packet-struct-copy" />
+ <xsd:element name="struct" type="struct" />
+ <xsd:element name="union" type="struct" />
+ <xsd:element name="xidtype">
+ <xsd:complexType>
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="enum">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="1" maxOccurs="unbounded">
+ <xsd:element name="item">
+ <xsd:complexType>
+ <xsd:group ref="expression" minOccurs="0" maxOccurs="1" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="typedef">
+ <xsd:complexType>
+ <xsd:attribute name="oldname" type="xsd:string" />
+ <xsd:attribute name="newname" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <!-- The import element allows a protocol description to reference the
+ declarations of another protocol description. -->
+ <xsd:element name="import" type="xsd:string" />
+ </xsd:choice>
+ </xsd:group>
+</xsd:schema>
--- /dev/null
+<?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="xcb_types">
+ <!-- Core protocol types -->
+
+ <struct name="CHAR2B">
+ <field type="CARD8" name="byte1" />
+ <field type="CARD8" name="byte2" />
+ </struct>
+
+ <xidtype name="WINDOW" />
+
+ <xidtype name="PIXMAP" />
+
+ <xidtype name="CURSOR" />
+
+ <xidtype name="FONT" />
+
+ <xidtype name="GCONTEXT" />
+
+ <xidtype name="COLORMAP" />
+
+ <xidtype name="ATOM" />
+
+ <union name="DRAWABLE">
+ <field type="WINDOW" name="window" />
+ <field type="PIXMAP" name="pixmap" />
+ </union>
+
+ <union name="FONTABLE">
+ <field type="FONT" name="font" />
+ <field type="GCONTEXT" name="gcontext" />
+ </union>
+
+ <struct name="VISUALID">
+ <field type="CARD32" name="id" />
+ </struct>
+
+ <struct name="TIMESTAMP">
+ <field type="CARD32" name="id" />
+ </struct>
+
+ <struct name="KEYSYM">
+ <field type="CARD32" name="id" />
+ </struct>
+
+ <struct name="KEYCODE">
+ <field type="CARD8" name="id" />
+ </struct>
+
+ <struct name="BUTTON">
+ <field type="CARD8" name="id" />
+ </struct>
+
+ <struct name="POINT">
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </struct>
+
+ <struct name="RECTANGLE">
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </struct>
+
+ <struct name="ARC">
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="INT16" name="angle1" />
+ <field type="INT16" name="angle2" />
+ </struct>
+
+ <!-- Connection setup-related types -->
+
+ <struct name="FORMAT">
+ <field type="CARD8" name="depth" />
+ <field type="CARD8" name="bits_per_pixel" />
+ <field type="CARD8" name="scanline_pad" />
+ <pad bytes="5" />
+ </struct>
+
+ <struct name="VISUALTYPE">
+ <field type="VISUALID" name="visual_id" />
+ <field type="CARD8" name="class" />
+ <field type="CARD8" name="bits_per_rgb_value" />
+ <field type="CARD16" name="colormap_entries" />
+ <field type="CARD32" name="red_mask" />
+ <field type="CARD32" name="green_mask" />
+ <field type="CARD32" name="blue_mask" />
+ <pad bytes="4" />
+ </struct>
+
+ <struct name="DEPTH">
+ <field type="CARD8" name="depth" />
+ <pad bytes="1" />
+ <field type="CARD16" name="visuals_len" />
+ <pad bytes="4" />
+ <list type="VISUALTYPE" name="visuals">
+ <fieldref>visuals_len</fieldref>
+ </list>
+ </struct>
+
+ <struct name="SCREEN">
+ <field type="WINDOW" name="root" />
+ <field type="COLORMAP" name="default_colormap" />
+ <field type="CARD32" name="white_pixel" />
+ <field type="CARD32" name="black_pixel" />
+ <field type="CARD32" name="current_input_masks" />
+ <field type="CARD16" name="width_in_pixels" />
+ <field type="CARD16" name="height_in_pixels" />
+ <field type="CARD16" name="width_in_millimeters" />
+ <field type="CARD16" name="height_in_millimeters" />
+ <field type="CARD16" name="min_installed_maps" />
+ <field type="CARD16" name="max_installed_maps" />
+ <field type="VISUALID" name="root_visual" />
+ <field type="BYTE" name="backing_stores" />
+ <field type="BOOL" name="save_unders" />
+ <field type="CARD8" name="root_depth" />
+ <field type="CARD8" name="allowed_depths_len" />
+ <list type="DEPTH" name="allowed_depths">
+ <fieldref>allowed_depths_len</fieldref>
+ </list>
+ </struct>
+
+ <struct name="ConnSetupReq">
+ <field type="CARD8" name="byte_order" />
+ <pad bytes="1" />
+ <field type="CARD16" name="protocol_major_version" />
+ <field type="CARD16" name="protocol_minor_version" />
+ <field type="CARD16" name="authorization_protocol_name_len" />
+ <field type="CARD16" name="authorization_protocol_data_len" />
+ <list type="char" name="authorization_protocol_name">
+ <fieldref>authorization_protocol_name_len</fieldref>
+ </list>
+ <list type="char" name="authorization_protocol_data">
+ <fieldref>authorization_protocol_data_len</fieldref>
+ </list>
+ </struct>
+
+ <struct name="ConnSetupGenericRep">
+ <field type="CARD8" name="status" />
+ <pad bytes="5" />
+ <field type="CARD16" name="length" />
+ </struct>
+
+ <struct name="ConnSetupFailedRep">
+ <field type="CARD8" name="status" /> <!-- always 0 -> Failed -->
+ <field type="CARD8" name="reason_len" />
+ <field type="CARD16" name="protocol_major_version" />
+ <field type="CARD16" name="protocol_minor_version" />
+ <field type="CARD16" name="length" />
+ <list type="char" name="reason">
+ <fieldref>reason_len</fieldref>
+ </list>
+ </struct>
+
+ <struct name="ConnSetupAuthenticateRep">
+ <field type="CARD8" name="status" /> <!-- always 2 -> Authenticate -->
+ <pad bytes="5" />
+ <field type="CARD16" name="length" />
+ <list type="char" name="reason">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </struct>
+
+ <struct name="ConnSetupSuccessRep">
+ <field type="CARD8" name="status" /> <!-- always 1 -> Success -->
+ <pad bytes="1" />
+ <field type="CARD16" name="protocol_major_version" />
+ <field type="CARD16" name="protocol_minor_version" />
+ <field type="CARD16" name="length" />
+ <field type="CARD32" name="release_number" />
+ <field type="CARD32" name="resource_id_base" />
+ <field type="CARD32" name="resource_id_mask" />
+ <field type="CARD32" name="motion_buffer_size" />
+ <field type="CARD16" name="vendor_len" />
+ <field type="CARD16" name="maximum_request_length" />
+ <field type="CARD8" name="roots_len" />
+ <field type="CARD8" name="pixmap_formats_len" />
+ <field type="CARD8" name="image_byte_order" />
+ <field type="CARD8" name="bitmap_format_bit_order" />
+ <field type="CARD8" name="bitmap_format_scanline_unit" />
+ <field type="CARD8" name="bitmap_format_scanline_pad" />
+ <field type="KEYCODE" name="min_keycode" />
+ <field type="KEYCODE" name="max_keycode" />
+ <pad bytes="4" />
+ <list type="char" name="vendor">
+ <fieldref>vendor_len</fieldref>
+ </list>
+ <list type="FORMAT" name="pixmap_formats">
+ <fieldref>pixmap_formats_len</fieldref>
+ </list>
+ <list type="SCREEN" name="roots">
+ <fieldref>roots_len</fieldref>
+ </list>
+ </struct>
+</xcb>
--- /dev/null
+<?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="xproto">
+ <!-- Core event and error types -->
+
+ <event name="KeyPress" number="2">
+ <field type="KEYCODE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
+
+ <event name="ButtonPress" number="4">
+ <field type="BUTTON" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
+
+ <event name="MotionNotify" number="6">
+ <field type="BYTE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BOOL" name="same_screen" />
+ </event>
+
+ <event name="EnterNotify" number="7">
+ <field type="BYTE" name="detail" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="event_x" />
+ <field type="INT16" name="event_y" />
+ <field type="CARD16" name="state" />
+ <field type="BYTE" name="mode" />
+ <field type="BYTE" name="same_screen_focus" />
+ </event>
+
+ <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
+
+ <event name="FocusIn" number="9">
+ <field type="BYTE" name="detail" />
+ <field type="WINDOW" name="event" />
+ <field type="BYTE" name="mode" />
+ </event>
+
+ <eventcopy name="FocusOut" number="10" ref="FocusIn" />
+
+ <event name="KeymapNotify" number="11" no-sequence-number="true">
+ <list type="CARD8" name="keys"><value>31</value></list>
+ </event>
+
+ <event name="Expose" number="12">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <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" />
+ </event>
+
+ <event name="GraphicsExposure" number="13">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="x" />
+ <field type="CARD16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD16" name="count" />
+ <field type="CARD8" name="major_opcode" />
+ </event>
+
+ <event name="NoExposure" number="14">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </event>
+
+ <event name="VisibilityNotify" number="15">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <event name="CreateNotify" number="16">
+ <pad bytes="1" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ <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="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="DestroyNotify" number="17">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ </event>
+
+ <event name="UnmapNotify" number="18">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="BOOL" name="from_configure" />
+ </event>
+
+ <event name="MapNotify" number="19">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="MapRequest" number="20">
+ <pad bytes="1" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ </event>
+
+ <event name="ReparentNotify" number="21">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="parent" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="ConfigureNotify" number="22">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="above_sibling" />
+ <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="BOOL" name="override_redirect" />
+ </event>
+
+ <event name="ConfigureRequest" number="23">
+ <field type="BYTE" name="stack_mode" />
+ <field type="WINDOW" name="parent" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="sibling" />
+ <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="CARD16" name="value_mask" />
+ </event>
+
+ <event name="GravityNotify" number="24">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </event>
+
+ <event name="ResizeRequest" number="25">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </event>
+
+ <event name="CirculateNotify" number="26">
+ <pad bytes="1" />
+ <field type="WINDOW" name="event" />
+ <field type="WINDOW" name="window" />
+ <pad bytes="4" />
+ <field type="BYTE" name="place" />
+ </event>
+
+ <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
+
+ <event name="PropertyNotify" number="28">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="atom" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <event name="SelectionClear" number="29">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="owner" />
+ <field type="ATOM" name="selection" />
+ </event>
+
+ <event name="SelectionRequest" number="30">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="owner" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ </event>
+
+ <event name="SelectionNotify" number="31">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ </event>
+
+ <event name="ColormapNotify" number="32">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="COLORMAP" name="colormap" />
+ <field type="BOOL" name="new" />
+ <field type="BYTE" name="state" />
+ </event>
+
+ <union name="ClientMessageData">
+ <!-- The format member of the ClientMessage event determines which array
+ to use. -->
+ <list type="CARD8" name="data8" ><value>20</value></list> <!-- 8 -->
+ <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
+ <list type="CARD32" name="data32"><value>5</value></list> <!-- 32 -->
+ </union>
+
+ <event name="ClientMessage" number="33">
+ <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="type" />
+ <field type="ClientMessageData" name="data" />
+ </event>
+
+ <event name="MappingNotify" number="34">
+ <pad bytes="1" />
+ <field type="BYTE" name="request" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ </event>
+
+ <error name="Request" number="1">
+ <field type="CARD32" name="bad_value" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </error>
+
+ <error name="Value" number="2">
+ <field type="CARD32" name="bad_value" />
+ <field type="CARD16" name="minor_opcode" />
+ <field type="CARD8" name="major_opcode" />
+ </error>
+
+ <errorcopy name="Window" number="3" ref="Value" />
+ <errorcopy name="Pixmap" number="4" ref="Value" />
+ <errorcopy name="Atom" number="5" ref="Value" />
+ <errorcopy name="Cursor" number="6" ref="Value" />
+ <errorcopy name="Font" number="7" ref="Value" />
+ <errorcopy name="Match" number="8" ref="Request" />
+ <errorcopy name="Drawable" number="9" ref="Value" />
+ <errorcopy name="Access" number="10" ref="Request" />
+ <errorcopy name="Alloc" number="11" ref="Request" />
+ <errorcopy name="Colormap" number="12" ref="Value" />
+ <errorcopy name="GContext" number="13" ref="Value" />
+ <errorcopy name="IDChoice" number="14" ref="Value" />
+ <errorcopy name="Name" number="15" ref="Request" />
+ <errorcopy name="Length" number="16" ref="Request" />
+ <errorcopy name="Implementation" number="17" ref="Request" />
+
+ <!-- The requests, in major number order. -->
+ <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
+
+ <!-- FIXME: The ListFontsWithInfo request is not supported by XCB. -->
+
+ <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
+ <enum name="CW">
+ <item name="BackPixmap">
+ <op op="<<"><value>1</value><value>0</value></op>
+ </item>
+ <item name="BackPixel">
+ <op op="<<"><value>1</value><value>1</value></op>
+ </item>
+ <item name="BorderPixmap">
+ <op op="<<"><value>1</value><value>2</value></op>
+ </item>
+ <item name="BorderPixel">
+ <op op="<<"><value>1</value><value>3</value></op>
+ </item>
+ <item name="BitGravity">
+ <op op="<<"><value>1</value><value>4</value></op>
+ </item>
+ <item name="WinGravity">
+ <op op="<<"><value>1</value><value>5</value></op>
+ </item>
+ <item name="BackingStore">
+ <op op="<<"><value>1</value><value>6</value></op>
+ </item>
+ <item name="BackingPlanes">
+ <op op="<<"><value>1</value><value>7</value></op>
+ </item>
+ <item name="BackingPixel">
+ <op op="<<"><value>1</value><value>8</value></op>
+ </item>
+ <item name="OverrideRedirect">
+ <op op="<<"><value>1</value><value>9</value></op>
+ </item>
+ <item name="SaveUnder">
+ <op op="<<"><value>1</value><value>10</value></op>
+ </item>
+ <item name="EventMask">
+ <op op="<<"><value>1</value><value>11</value></op>
+ </item>
+ <item name="DontPropagate">
+ <op op="<<"><value>1</value><value>12</value></op>
+ </item>
+ <item name="Colormap">
+ <op op="<<"><value>1</value><value>13</value></op>
+ </item>
+ <item name="Cursor">
+ <op op="<<"><value>1</value><value>14</value></op>
+ </item>
+ </enum>
+
+ <request name="CreateWindow" opcode="1">
+ <field type="CARD8" name="depth" />
+ <field type="WINDOW" name="wid" />
+ <field type="WINDOW" name="parent" />
+ <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="CARD16" name="class" />
+ <field type="VISUALID" name="visual" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="ChangeWindowAttributes" opcode="2">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="GetWindowAttributes" opcode="3">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="CARD8" name="backing_store" />
+ <field type="VISUALID" name="visual" />
+ <field type="CARD16" name="class" />
+ <field type="CARD8" name="bit_gravity" />
+ <field type="CARD8" name="win_gravity" />
+ <field type="CARD32" name="backing_planes" />
+ <field type="CARD32" name="backing_pixel" />
+ <field type="BOOL" name="save_under" />
+ <field type="BOOL" name="map_is_installed" />
+ <field type="CARD8" name="map_state" />
+ <field type="BOOL" name="override_redirect" />
+ <field type="COLORMAP" name="colormap" />
+ <field type="CARD32" name="all_event_masks" />
+ <field type="CARD32" name="your_event_mask" />
+ <field type="CARD16" name="do_not_propagate_mask" />
+ </reply>
+ </request>
+
+ <request name="DestroyWindow" opcode="4">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="DestroySubwindows" opcode="5">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ChangeSaveSet" opcode="6">
+ <field type="BYTE" name="mode" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ReparentWindow" opcode="7">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="WINDOW" name="parent" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </request>
+
+ <request name="MapWindow" opcode="8">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="MapSubwindows" opcode="9">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="UnmapWindow" opcode="10">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="UnmapSubwindows" opcode="11">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="ConfigureWindow" opcode="12">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <valueparam value-mask-type="CARD16"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="CirculateWindow" opcode="13">
+ <field type="CARD8" name="direction" />
+ <field type="WINDOW" name="window" />
+ </request>
+
+ <request name="GetGeometry" opcode="14">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <reply>
+ <field type="CARD8" name="depth" />
+ <field type="WINDOW" name="root" />
+ <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" />
+ </reply>
+ </request>
+
+ <request name="QueryTree" opcode="15">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="parent" />
+ <field type="CARD16" name="children_len" />
+ <pad bytes="14" />
+ <list type="WINDOW" name="children">
+ <fieldref>children_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="InternAtom" opcode="16">
+ <field type="BOOL" name="only_if_exists" />
+ <field type="CARD16" name="name_len" />
+ <pad bytes="2" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="ATOM" name="atom" />
+ </reply>
+ </request>
+
+ <request name="GetAtomName" opcode="17">
+ <pad bytes="1" />
+ <field type="ATOM" name="atom" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="name_len" />
+ <pad bytes="22" />
+ <list type="CARD8" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeProperty" opcode="18">
+ <field type="CARD8" name="mode" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" />
+ <field type="CARD8" name="format" />
+ <pad bytes="3" />
+ <field type="CARD32" name="data_len" />
+ <list type="void" name="data">
+ <op op="/">
+ <op op="*">
+ <fieldref>data_len</fieldref>
+ <fieldref>format</fieldref>
+ </op>
+ <value>8</value>
+ </op>
+ </list>
+ </request>
+
+ <request name="DeleteProperty" opcode="19">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ </request>
+
+ <request name="GetProperty" opcode="20">
+ <field type="BOOL" name="delete" />
+ <field type="WINDOW" name="window" />
+ <field type="ATOM" name="property" />
+ <field type="ATOM" name="type" />
+ <field type="CARD32" name="long_offset" />
+ <field type="CARD32" name="long_length" />
+ <reply>
+ <field type="CARD8" name="format" />
+ <field type="ATOM" name="type" />
+ <field type="CARD32" name="bytes_after" />
+ <field type="CARD32" name="value_len" />
+ <pad bytes="12" />
+ <list type="void" name="value">
+ <fieldref>value_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListProperties" opcode="21">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="atoms_len" />
+ <pad bytes="22" />
+ <list type="ATOM" name="atoms">
+ <fieldref>atoms_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetSelectionOwner" opcode="22">
+ <pad bytes="1" />
+ <field type="WINDOW" name="owner" />
+ <field type="ATOM" name="selection" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GetSelectionOwner" opcode="23">
+ <pad bytes="1" />
+ <field type="ATOM" name="selection" />
+ <reply>
+ <pad bytes="1" />
+ <field type="WINDOW" name="owner" />
+ </reply>
+ </request>
+
+ <request name="ConvertSelection" opcode="24">
+ <pad bytes="1" />
+ <field type="WINDOW" name="requestor" />
+ <field type="ATOM" name="selection" />
+ <field type="ATOM" name="target" />
+ <field type="ATOM" name="property" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="SendEvent" opcode="25">
+ <field type="BOOL" name="propagate" />
+ <field type="WINDOW" name="destination" />
+ <field type="CARD32" name="event_mask" />
+ <list type="char" name="event"><value>32</value></list>
+ </request>
+
+ <request name="GrabPointer" opcode="26">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="event_mask" />
+ <field type="BYTE" name="pointer_mode" />
+ <field type="BYTE" name="keyboard_mode" />
+ <field type="WINDOW" name="confine_to" />
+ <field type="CURSOR" name="cursor" />
+ <field type="TIMESTAMP" name="time" />
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="UngrabPointer" opcode="27">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabButton" opcode="28">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="event_mask" />
+ <field type="CARD8" name="pointer_mode" />
+ <field type="CARD8" name="keyboard_mode" />
+ <field type="WINDOW" name="confine_to" />
+ <field type="CURSOR" name="cursor" />
+ <field type="CARD8" name="button" />
+ <pad bytes="1" />
+ <field type="CARD16" name="modifiers" />
+ </request>
+
+ <request name="UngrabButton" opcode="29">
+ <field type="CARD8" name="button" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ <pad bytes="2" />
+ </request>
+
+ <request name="ChangeActivePointerGrab" opcode="30">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="CARD16" name="event_mask" />
+ </request>
+
+ <request name="GrabKeyboard" opcode="31">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="TIMESTAMP" name="time" />
+ <field type="BYTE" name="pointer_mode" />
+ <field type="BYTE" name="keyboard_mode" />
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="UngrabKeyboard" opcode="32">
+ <pad bytes="1" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabKey" opcode="33">
+ <field type="BOOL" name="owner_events" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ <field type="KEYCODE" name="key" />
+ <field type="CARD8" name="pointer_mode" />
+ <field type="CARD8" name="keyboard_mode" />
+ </request>
+
+ <request name="UngrabKey" opcode="34">
+ <field type="CARD8" name="key" />
+ <field type="WINDOW" name="grab_window" />
+ <field type="CARD16" name="modifiers" />
+ </request>
+
+ <request name="AllowEvents" opcode="35">
+ <field type="CARD8" name="mode" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GrabServer" opcode="36" />
+
+ <request name="UngrabServer" opcode="37" />
+
+ <request name="QueryPointer" opcode="38">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <field type="BOOL" name="same_screen" />
+ <field type="WINDOW" name="root" />
+ <field type="WINDOW" name="child" />
+ <field type="INT16" name="root_x" />
+ <field type="INT16" name="root_y" />
+ <field type="INT16" name="win_x" />
+ <field type="INT16" name="win_y" />
+ <field type="CARD16" name="mask" />
+ </reply>
+ </request>
+
+ <struct name="TIMECOORD">
+ <field type="TIMESTAMP" name="time" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ </struct>
+
+ <request name="GetMotionEvents" opcode="39">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <field type="TIMESTAMP" name="start" />
+ <field type="TIMESTAMP" name="stop" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="events_len" />
+ <pad bytes="20" />
+ <list type="TIMECOORD" name="events">
+ <fieldref>events_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="TranslateCoordinates" opcode="40">
+ <pad bytes="1" />
+ <field type="WINDOW" name="src_window" />
+ <field type="WINDOW" name="dst_window" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <reply>
+ <field type="BOOL" name="same_screen" />
+ <field type="WINDOW" name="child" />
+ <field type="CARD16" name="dst_x" />
+ <field type="CARD16" name="dst_y" />
+ </reply>
+ </request>
+
+ <request name="WarpPointer" opcode="41">
+ <pad bytes="1" />
+ <field type="WINDOW" name="src_window" />
+ <field type="WINDOW" name="dst_window" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" 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" />
+ </request>
+
+ <request name="SetInputFocus" opcode="42">
+ <field type="CARD8" name="revert_to" />
+ <field type="WINDOW" name="focus" />
+ <field type="TIMESTAMP" name="time" />
+ </request>
+
+ <request name="GetInputFocus" opcode="43">
+ <reply>
+ <field type="CARD8" name="revert_to" />
+ <field type="WINDOW" name="focus" />
+ </reply>
+ </request>
+
+ <request name="QueryKeymap" opcode="44">
+ <reply>
+ <pad bytes="1" />
+ <list type="CARD8" name="keys"><value>32</value></list>
+ </reply>
+ </request>
+
+ <request name="OpenFont" opcode="45">
+ <pad bytes="1" />
+ <field type="FONT" name="fid" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </request>
+
+ <request name="CloseFont" opcode="46">
+ <pad bytes="1" />
+ <field type="FONT" name="font" />
+ </request>
+
+ <struct name="FONTPROP">
+ <field type="ATOM" name="name" />
+ <field type="CARD32" name="value" />
+ </struct>
+
+ <struct name="CHARINFO">
+ <field type="INT16" name="left_side_bearing" />
+ <field type="INT16" name="right_side_bearing" />
+ <field type="INT16" name="character_width" />
+ <field type="INT16" name="ascent" />
+ <field type="INT16" name="descent" />
+ <field type="CARD16" name="attributes" />
+ </struct>
+
+ <request name="QueryFont" opcode="47">
+ <pad bytes="1" />
+ <field type="FONTABLE" name="font" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CHARINFO" name="min_bounds" />
+ <pad bytes="4" />
+ <field type="CHARINFO" name="max_bounds" />
+ <pad bytes="4" />
+ <field type="CARD16" name="min_char_or_byte2" />
+ <field type="CARD16" name="max_char_or_byte2" />
+ <field type="CARD16" name="default_char" />
+ <field type="CARD16" name="properties_len" />
+ <field type="BYTE" name="draw_direction" />
+ <field type="CARD8" name="min_byte1" />
+ <field type="CARD8" name="max_byte1" />
+ <field type="BOOL" name="all_chars_exist" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="CARD32" name="char_infos_len" />
+ <list type="FONTPROP" name="properties">
+ <fieldref>properties_len</fieldref>
+ </list>
+ <list type="CHARINFO" name="char_infos">
+ <fieldref>char_infos_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="QueryTextExtents" opcode="48">
+ <exprfield type="BOOL" name="odd_length">
+ <op op="&"><fieldref>string_len</fieldref><value>1</value></op>
+ </exprfield>
+ <field type="FONTABLE" name="font" />
+ <list type="CHAR2B" name="string" />
+ <reply>
+ <field type="BYTE" name="draw_direction" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="INT16" name="overall_ascent" />
+ <field type="INT16" name="overall_descent" />
+ <field type="INT32" name="overall_width" />
+ <field type="INT32" name="overall_left" />
+ <field type="INT32" name="overall_right" />
+ </reply>
+ </request>
+
+ <struct name="STR">
+ <field type="CARD8" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </struct>
+
+ <request name="ListFonts" opcode="49">
+ <pad bytes="1" />
+ <field type="CARD16" name="max_names" />
+ <field type="CARD16" name="pattern_len" />
+ <list type="char" name="pattern">
+ <fieldref>pattern_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="names_len" />
+ <pad bytes="22" />
+ <list type="STR" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ListFontsWithInfo" opcode="50">
+ <pad bytes="1" />
+ <field type="CARD16" name="max_names" />
+ <field type="CARD16" name="pattern_len" />
+ <list type="char" name="pattern">
+ <fieldref>pattern_len</fieldref>
+ </list>
+ <reply>
+ <field type="CARD8" name="name_len" />
+ <field type="CHARINFO" name="min_bounds" />
+ <pad bytes="4" />
+ <field type="CHARINFO" name="max_bounds" />
+ <pad bytes="4" />
+ <field type="CARD16" name="min_char_or_byte2" />
+ <field type="CARD16" name="max_char_or_byte2" />
+ <field type="CARD16" name="default_char" />
+ <field type="CARD16" name="properties_len" />
+ <field type="BYTE" name="draw_direction" />
+ <field type="CARD8" name="min_byte1" />
+ <field type="CARD8" name="max_byte1" />
+ <field type="BOOL" name="all_chars_exist" />
+ <field type="INT16" name="font_ascent" />
+ <field type="INT16" name="font_descent" />
+ <field type="CARD32" name="replies_hint" />
+ <list type="FONTPROP" name="properties">
+ <fieldref>properties_len</fieldref>
+ </list>
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetFontPath" opcode="51">
+ <pad bytes="1" />
+ <field type="CARD16" name="font_qty" />
+ <list type="char" name="path" />
+ </request>
+
+ <request name="GetFontPath" opcode="52">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="path_len" />
+ <pad bytes="22" />
+ <list type="STR" name="path">
+ <fieldref>path_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="CreatePixmap" opcode="53">
+ <field type="CARD8" name="depth" />
+ <field type="PIXMAP" name="pid" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="FreePixmap" opcode="54">
+ <pad bytes="1" />
+ <field type="PIXMAP" name="pixmap" />
+ </request>
+
+ <request name="CreateGC" opcode="55">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="cid" />
+ <field type="DRAWABLE" name="drawable" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="ChangeGC" opcode="56">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="CopyGC" opcode="57">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="src_gc" />
+ <field type="GCONTEXT" name="dst_gc" />
+ <field type="CARD32" name="value_mask" />
+ </request>
+
+ <request name="SetDashes" opcode="58">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD16" name="dash_offset" />
+ <field type="CARD16" name="dashes_len" />
+ <list type="CARD8" name="dashes">
+ <fieldref>dashes_len</fieldref>
+ </list>
+ </request>
+
+ <request name="SetClipRectangles" opcode="59">
+ <field type="BYTE" name="ordering" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="clip_x_origin" />
+ <field type="INT16" name="clip_y_origin" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="FreeGC" opcode="60">
+ <pad bytes="1" />
+ <field type="GCONTEXT" name="gc" />
+ </request>
+
+ <request name="ClearArea" opcode="61">
+ <field type="BOOL" name="exposures" />
+ <field type="WINDOW" name="window" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="CopyArea" opcode="62">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="src_drawable" />
+ <field type="DRAWABLE" name="dst_drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </request>
+
+ <request name="CopyPlane" opcode="63">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="src_drawable" />
+ <field type="DRAWABLE" name="dst_drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="src_x" />
+ <field type="INT16" name="src_y" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="CARD32" name="bit_plane" />
+ </request>
+
+ <request name="PolyPoint" opcode="64" combine-adjacent="true">
+ <field type="BYTE" name="coordinate_mode" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <request name="PolyLine" opcode="65" combine-adjacent="true">
+ <field type="BYTE" name="coordinate_mode" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <struct name="SEGMENT">
+ <field type="INT16" name="x1" />
+ <field type="INT16" name="y1" />
+ <field type="INT16" name="x2" />
+ <field type="INT16" name="y2" />
+ </struct>
+
+ <request name="PolySegment" opcode="66" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="SEGMENT" name="segments" />
+ </request>
+
+ <request name="PolyRectangle" opcode="67" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <!--
+ The semantics of PolyArc change after the first arc: the GC's
+ join style may be applied to successive arcs under some circumstances.
+ So using combine-adjacent here is bad.
+ -->
+ <request name="PolyArc" opcode="68">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="ARC" name="arcs" />
+ </request>
+
+ <request name="FillPoly" opcode="69">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD8" name="shape" />
+ <field type="CARD8" name="coordinate_mode" />
+ <list type="POINT" name="points" />
+ </request>
+
+ <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="RECTANGLE" name="rectangles" />
+ </request>
+
+ <request name="PolyFillArc" opcode="71" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <list type="ARC" name="arcs" />
+ </request>
+
+ <request name="PutImage" opcode="72">
+ <field type="CARD8" name="format" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <field type="INT16" name="dst_x" />
+ <field type="INT16" name="dst_y" />
+ <field type="CARD8" name="left_pad" />
+ <field type="CARD8" name="depth" />
+ <list type="BYTE" name="data" />
+ </request>
+
+ <!-- FIXME: data array in reply will include padding, but ought not to. -->
+ <request name="GetImage" opcode="73">
+ <field type="CARD8" name="format" />
+ <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" />
+ <reply>
+ <field type="CARD8" name="depth" />
+ <field type="VISUALID" name="visual" />
+ <pad bytes="20" />
+ <list type="BYTE" name="data">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="PolyText8" opcode="74">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="BYTE" name="items" />
+ </request>
+
+ <request name="PolyText16" opcode="75">
+ <pad bytes="1" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="BYTE" name="items" />
+ </request>
+
+ <request name="ImageText8" opcode="76">
+ <field type="BYTE" name="string_len" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="char" name="string">
+ <fieldref>string_len</fieldref>
+ </list>
+ </request>
+
+ <request name="ImageText16" opcode="77">
+ <field type="BYTE" name="string_len" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="GCONTEXT" name="gc" />
+ <field type="INT16" name="x" />
+ <field type="INT16" name="y" />
+ <list type="CHAR2B" name="string">
+ <fieldref>string_len</fieldref>
+ </list>
+ </request>
+
+ <request name="CreateColormap" opcode="78">
+ <field type="BYTE" name="alloc" />
+ <field type="COLORMAP" name="mid" />
+ <field type="WINDOW" name="window" />
+ <field type="VISUALID" name="visual" />
+ </request>
+
+ <request name="FreeColormap" opcode="79">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="CopyColormapAndFree" opcode="80">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="mid" />
+ <field type="COLORMAP" name="src_cmap" />
+ </request>
+
+ <request name="InstallColormap" opcode="81">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="UninstallColormap" opcode="82">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ </request>
+
+ <request name="ListInstalledColormaps" opcode="83">
+ <pad bytes="1" />
+ <field type="WINDOW" name="window" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="cmaps_len" />
+ <pad bytes="22" />
+ <list type="COLORMAP" name="cmaps">
+ <fieldref>cmaps_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="AllocColor" opcode="84">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <pad bytes="2" />
+ <field type="CARD32" name="pixel" />
+ </reply>
+ </request>
+
+ <request name="AllocNamedColor" opcode="85">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="exact_red" />
+ <field type="CARD16" name="exact_green" />
+ <field type="CARD16" name="exact_blue" />
+ <field type="CARD16" name="visual_red" />
+ <field type="CARD16" name="visual_green" />
+ <field type="CARD16" name="visual_blue" />
+ </reply>
+ </request>
+
+ <request name="AllocColorCells" opcode="86">
+ <field type="BOOL" name="contiguous" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="colors" />
+ <field type="CARD16" name="planes" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="pixels_len" />
+ <field type="CARD16" name="masks_len" />
+ <pad bytes="20" />
+ <list type="CARD32" name="pixels">
+ <fieldref>pixels_len</fieldref>
+ </list>
+ <list type="CARD32" name="masks">
+ <fieldref>masks_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="AllocColorPlanes" opcode="87">
+ <field type="BOOL" name="contiguous" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="colors" />
+ <field type="CARD16" name="reds" />
+ <field type="CARD16" name="greens" />
+ <field type="CARD16" name="blues" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="pixels_len" />
+ <pad bytes="2" />
+ <field type="CARD32" name="red_mask" />
+ <field type="CARD32" name="green_mask" />
+ <field type="CARD32" name="blue_mask" />
+ <pad bytes="8" />
+ <list type="CARD32" name="pixels">
+ <fieldref>pixels_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="FreeColors" opcode="88">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD32" name="plane_mask" />
+ <list type="CARD32" name="pixels" />
+ </request>
+
+ <struct name="COLORITEM">
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <field type="BYTE" name="flags" />
+ <pad bytes="1" />
+ </struct>
+
+ <request name="StoreColors" opcode="89" combine-adjacent="true">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <list type="COLORITEM" name="items" />
+ </request>
+
+ <request name="StoreNamedColor" opcode="90">
+ <field type="CARD8" name="flags" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD32" name="pixel" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ </request>
+
+ <struct name="RGB">
+ <field type="CARD16" name="red" />
+ <field type="CARD16" name="green" />
+ <field type="CARD16" name="blue" />
+ <pad bytes="2" />
+ </struct>
+
+ <request name="QueryColors" opcode="91">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <list type="CARD32" name="pixels" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="colors_len" />
+ <pad bytes="22" />
+ <list type="RGB" name="colors">
+ <fieldref>colors_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="LookupColor" opcode="92">
+ <pad bytes="1" />
+ <field type="COLORMAP" name="cmap" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="exact_red" />
+ <field type="CARD16" name="exact_green" />
+ <field type="CARD16" name="exact_blue" />
+ <field type="CARD16" name="visual_red" />
+ <field type="CARD16" name="visual_green" />
+ <field type="CARD16" name="visual_blue" />
+ </reply>
+ </request>
+
+ <request name="CreateCursor" opcode="93">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cid" />
+ <field type="PIXMAP" name="source" />
+ <field type="PIXMAP" name="mask" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ <field type="CARD16" name="x" />
+ <field type="CARD16" name="y" />
+ </request>
+
+ <request name="CreateGlyphCursor" opcode="94">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cid" />
+ <field type="FONT" name="source_font" />
+ <field type="FONT" name="mask_font" />
+ <field type="CARD16" name="source_char" />
+ <field type="CARD16" name="mask_char" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ </request>
+
+ <request name="FreeCursor" opcode="95">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ </request>
+
+ <request name="RecolorCursor" opcode="96">
+ <pad bytes="1" />
+ <field type="CURSOR" name="cursor" />
+ <field type="CARD16" name="fore_red" />
+ <field type="CARD16" name="fore_green" />
+ <field type="CARD16" name="fore_blue" />
+ <field type="CARD16" name="back_red" />
+ <field type="CARD16" name="back_green" />
+ <field type="CARD16" name="back_blue" />
+ </request>
+
+ <request name="QueryBestSize" opcode="97">
+ <field type="CARD8" name="class" />
+ <field type="DRAWABLE" name="drawable" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="width" />
+ <field type="CARD16" name="height" />
+ </reply>
+ </request>
+
+ <request name="QueryExtension" opcode="98">
+ <pad bytes="1" />
+ <field type="CARD16" name="name_len" />
+ <list type="char" name="name">
+ <fieldref>name_len</fieldref>
+ </list>
+ <reply>
+ <pad bytes="1" />
+ <field type="BOOL" name="present" />
+ <field type="CARD8" name="major_opcode" />
+ <field type="CARD8" name="first_event" />
+ <field type="CARD8" name="first_error" />
+ </reply>
+ </request>
+
+ <request name="ListExtensions" opcode="99">
+ <reply>
+ <field type="CARD8" name="names_len" />
+ <pad bytes="24" />
+ <list type="STR" name="names">
+ <fieldref>names_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeKeyboardMapping" opcode="100">
+ <field type="CARD8" name="keycode_count" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="keysyms_per_keycode" />
+ <list type="KEYSYM" name="keysyms">
+ <op op="*">
+ <fieldref>keycode_count</fieldref>
+ <fieldref>keysyms_per_keycode</fieldref>
+ </op>
+ </list>
+ </request>
+
+ <request name="GetKeyboardMapping" opcode="101">
+ <pad bytes="1" />
+ <field type="KEYCODE" name="first_keycode" />
+ <field type="CARD8" name="count" />
+ <reply>
+ <field type="BYTE" name="keysyms_per_keycode" />
+ <pad bytes="24" />
+ <list type="KEYSYM" name="keysyms">
+ <op op="*">
+ <fieldref>length</fieldref>
+ <value>4</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <request name="ChangeKeyboardControl" opcode="102">
+ <pad bytes="1" />
+ <valueparam value-mask-type="CARD32"
+ value-mask-name="value_mask"
+ value-list-name="value_list" />
+ </request>
+
+ <request name="GetKeyboardControl" opcode="103">
+ <reply>
+ <field type="BYTE" name="global_auto_repeat" />
+ <field type="CARD32" name="led_mask" />
+ <field type="CARD8" name="key_click_percent" />
+ <field type="CARD8" name="bell_percent" />
+ <field type="CARD16" name="bell_pitch" />
+ <field type="CARD16" name="bell_duration" />
+ <pad bytes="2" />
+ <list type="CARD8" name="auto_repeats"><value>32</value></list>
+ </reply>
+ </request>
+
+ <request name="Bell" opcode="104">
+ <field type="INT8" name="percent" />
+ </request>
+
+ <request name="ChangePointerControl" opcode="105">
+ <pad bytes="1" />
+ <field type="INT16" name="acceleration_numerator" />
+ <field type="INT16" name="acceleration_denominator" />
+ <field type="INT16" name="threshold" />
+ <field type="BOOL" name="do_acceleration" />
+ <field type="BOOL" name="do_threshold" />
+ </request>
+
+ <request name="GetPointerControl" opcode="106">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="acceleration_numerator" />
+ <field type="CARD16" name="acceleration_denominator" />
+ <field type="CARD16" name="threshold" />
+ </reply>
+ </request>
+
+ <request name="SetScreenSaver" opcode="107">
+ <pad bytes="1" />
+ <field type="INT16" name="timeout" />
+ <field type="INT16" name="interval" />
+ <field type="CARD8" name="prefer_blanking" />
+ <field type="CARD8" name="allow_exposures" />
+ </request>
+
+ <request name="GetScreenSaver" opcode="108">
+ <reply>
+ <pad bytes="1" />
+ <field type="CARD16" name="timeout" />
+ <field type="CARD16" name="interval" />
+ <field type="BYTE" name="prefer_blanking" />
+ <field type="BYTE" name="allow_exposures" />
+ </reply>
+ </request>
+
+ <request name="ChangeHosts" opcode="109">
+ <field type="CARD8" name="mode" />
+ <field type="CARD8" name="family" />
+ <pad bytes="1" />
+ <field type="CARD16" name="address_len" />
+ <list type="char" name="address">
+ <fieldref>address_len</fieldref>
+ </list>
+ </request>
+
+ <struct name="HOST">
+ <field type="CARD8" name="family" />
+ <pad bytes="1" />
+ <field type="CARD16" name="address_len" />
+ <list type="BYTE" name="address">
+ <fieldref>address_len</fieldref>
+ </list>
+ </struct>
+
+ <request name="ListHosts" opcode="110">
+ <reply>
+ <field type="BYTE" name="mode" />
+ <field type="CARD16" name="hosts_len" />
+ <pad bytes="22" />
+ <list type="HOST" name="hosts">
+ <fieldref>hosts_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetAccessControl" opcode="111">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="SetCloseDownMode" opcode="112">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="KillClient" opcode="113">
+ <pad bytes="1" />
+ <field type="CARD32" name="resource" />
+ </request>
+
+ <request name="RotateProperties" opcode="114">
+ <field type="WINDOW" name="window" />
+ <field type="CARD16" name="atoms_len" />
+ <field type="INT16" name="delta" />
+ <list type="ATOM" name="atoms">
+ <fieldref>atoms_len</fieldref>
+ </list>
+ </request>
+
+ <request name="ForceScreenSaver" opcode="115">
+ <field type="CARD8" name="mode" />
+ </request>
+
+ <request name="SetPointerMapping" opcode="116">
+ <field type="CARD8" name="map_len" />
+ <list type="CARD8" name="map">
+ <fieldref>map_len</fieldref>
+ </list>
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="GetPointerMapping" opcode="117">
+ <reply>
+ <field type="CARD8" name="map_len" />
+ <pad bytes="24" />
+ <list type="CARD8" name="map">
+ <fieldref>map_len</fieldref>
+ </list>
+ </reply>
+ </request>
+
+ <request name="SetModifierMapping" opcode="118">
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <list type="KEYCODE" name="keycodes">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ <reply>
+ <field type="BYTE" name="status" />
+ </reply>
+ </request>
+
+ <request name="GetModifierMapping" opcode="119">
+ <reply>
+ <field type="CARD8" name="keycodes_per_modifier" />
+ <pad bytes="24" />
+ <list type="KEYCODE" name="keycodes">
+ <op op="*">
+ <fieldref>keycodes_per_modifier</fieldref>
+ <value>8</value>
+ </op>
+ </list>
+ </reply>
+ </request>
+
+ <!--
+ FIXME: NoOperation should allow specifying payload length
+ but geez, malloc()ing a 262140 byte buffer just so I have something
+ to hand to write(2) seems silly...!
+ -->
+ <request name="NoOperation" opcode="127" />
+
+</xcb>
--- /dev/null
+prefix=@prefix@
+includedir=@includedir@
+xcbincludedir=@xcbincludedir@
+
+Name: XCBProto
+Description: X protocol descriptions for XCB
+Version: @PACKAGE_VERSION@