diff options
author | Josh Triplett <josh@freedesktop.org> | 2006-02-18 16:49:41 -0800 |
---|---|---|
committer | Josh Triplett <josh@josh-mobile.localdomain> | 2006-02-18 16:49:41 -0800 |
commit | 9605e865e5fa7afad87f4dfce55de67551421e95 (patch) | |
tree | 18ee2656651bf809009a8e4ef28f9be7a101c79d |
Remove xcl and CVSROOT.
40 files changed, 7600 insertions, 0 deletions
diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..3d5e104 --- /dev/null +++ b/.cvsignore @@ -0,0 +1,17 @@ +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 @@ -0,0 +1,30 @@ +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. @@ -0,0 +1,229 @@ +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. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..c7d872c --- /dev/null +++ b/Makefile.am @@ -0,0 +1,6 @@ +SUBDIRS=src + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = xcb-proto.pc + +EXTRA_DIST=xcb-proto.pc.in @@ -0,0 +1,39 @@ +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 + + diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..d68a142 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,3 @@ +#! /bin/sh +autoreconf -v --install || exit 1 +./configure "$@" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..2baaab4 --- /dev/null +++ b/configure.ac @@ -0,0 +1,14 @@ +# -*- 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]) diff --git a/debian/.cvsignore b/debian/.cvsignore new file mode 100644 index 0000000..98316da --- /dev/null +++ b/debian/.cvsignore @@ -0,0 +1,5 @@ +compat +fd.o-* +stamp-* +tmp +files diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..2a816f5 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,28 @@ +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 + diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..8cb1bec --- /dev/null +++ b/debian/control @@ -0,0 +1,26 @@ +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 diff --git a/debian/copyright.debian b/debian/copyright.debian new file mode 100644 index 0000000..7cd330a --- /dev/null +++ b/debian/copyright.debian @@ -0,0 +1,12 @@ +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: + diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..b580384 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +doc/xml-xcb.txt diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..e997421 --- /dev/null +++ b/debian/rules @@ -0,0 +1,18 @@ +#!/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 diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt new file mode 100644 index 0000000..fecee31 --- /dev/null +++ b/doc/xml-xcb.txt @@ -0,0 +1,275 @@ + 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. diff --git a/src/.cvsignore b/src/.cvsignore new file mode 100644 index 0000000..282522d --- /dev/null +++ b/src/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..e2d519e --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,22 @@ +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 diff --git a/src/extensions/bigreq.xml b/src/extensions/bigreq.xml new file mode 100644 index 0000000..9e99d2e --- /dev/null +++ b/src/extensions/bigreq.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> +<xcb header="bigreq" extension-xname="BIG-REQUESTS" + extension-name="BigRequests"> + <request name="Enable" opcode="0"> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="maximum_request_length" /> + </reply> + </request> +</xcb> diff --git a/src/extensions/composite.xml b/src/extensions/composite.xml new file mode 100644 index 0000000..20c4976 --- /dev/null +++ b/src/extensions/composite.xml @@ -0,0 +1,80 @@ +<?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> diff --git a/src/extensions/damage.xml b/src/extensions/damage.xml new file mode 100644 index 0000000..cd79302 --- /dev/null +++ b/src/extensions/damage.xml @@ -0,0 +1,78 @@ +<?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> diff --git a/src/extensions/dpms.xml b/src/extensions/dpms.xml new file mode 100644 index 0000000..27ba98a --- /dev/null +++ b/src/extensions/dpms.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> +<xcb header="dpms" extension-xname="DPMS" extension-name="DPMS"> + <request name="GetVersion" opcode="0"> + <field type="CARD16" name="client_major_version" /> + <field type="CARD16" name="client_minor_version" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="server_major_version" /> + <field type="CARD16" name="server_minor_version" /> + </reply> + </request> + + <request name="Capable" opcode="1"> + <reply> + <pad bytes="1" /> + <field type="BOOL" name="capable" /> + </reply> + </request> + + <request name="GetTimeouts" opcode="2"> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="standby_timeout" /> + <field type="CARD16" name="suspend_timeout" /> + <field type="CARD16" name="off_timeout" /> + </reply> + </request> + + <request name="SetTimeouts" opcode="3"> + <field type="CARD16" name="standby_timeout" /> + <field type="CARD16" name="suspend_timeout" /> + <field type="CARD16" name="off_timeout" /> + </request> + + <request name="Enable" opcode="4" /> + + <request name="Disable" opcode="5" /> + + <request name="ForceLevel" opcode="6"> + <field type="CARD16" name="power_level" /> + </request> + + <request name="Info" opcode="7"> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="power_level" /> + <field type="BOOL" name="state" /> + </reply> + </request> +</xcb> diff --git a/src/extensions/glx.xml b/src/extensions/glx.xml new file mode 100644 index 0000000..40310ad --- /dev/null +++ b/src/extensions/glx.xml @@ -0,0 +1,1455 @@ +<?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> diff --git a/src/extensions/randr.xml b/src/extensions/randr.xml new file mode 100644 index 0000000..a85b69c --- /dev/null +++ b/src/extensions/randr.xml @@ -0,0 +1,147 @@ +<?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> diff --git a/src/extensions/record.xml b/src/extensions/record.xml new file mode 100644 index 0000000..09729ad --- /dev/null +++ b/src/extensions/record.xml @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2005 Jeremy Kolb. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person ob/Sintaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> + +<xcb header="record" extension-xname="RECORD" extension-name="Record"> + + <!-- Types --> + <xidtype name="CONTEXT" /> + + <struct name="Range8"> + <field type="CARD8" name="first" /> + <field type="CARD8" name="last" /> + </struct> + + <struct name="Range16"> + <field type="CARD16" name="first" /> + <field type="CARD16" name="last" /> + </struct> + + <struct name="ExtRange"> + <field type="Range8" name="major" /> + <field type="Range16" name="minor" /> + </struct> + + <struct name="Range"> + <field type="Range8" name="core_requests" /> + <field type="Range8" name="core_replies" /> + <field type="ExtRange" name="ext_requests" /> + <field type="ExtRange" name="ext_replies" /> + <field type="Range8" name="delivered_events" /> + <field type="Range8" name="device_events" /> + <field type="Range8" name="errors" /> + <field type="BOOL" name="client_started" /> + <field type="BOOL" name="client_died" /> + </struct> + + <typedef oldname="CARD8" newname="ElementHeader" /> + <enum name="HType"> + <item name="FromServerTime"><value>0x01</value></item> + <item name="FromClientTime"><value>0x02</value></item> + <item name="FromClientSequence"><value>0x04</value></item> + </enum> + + <typedef oldname="CARD32" newname="ClientSpec" /> + <enum name="CS"> + <item name="CurrentClients"><value>1</value></item> + <item name="FutureClients"><value>2</value></item> + <item name="AllClients"><value>3</value></item> + </enum> + + <struct name="ClientInfo"> + <field type="ClientSpec" name="client_resource" /> + <field type="CARD32" name="num_ranges" /> + <list type="Range" name="ranges"> + <fieldref>num_ranges</fieldref> + </list> + </struct> + + <!-- Errors --> + <error name="BadContext" number="0"> + <field type="CARD32" name="invalid_record" /> + </error> + + <!-- Requests --> + <request name="QueryVersion" opcode="0"> + <field type="CARD16" name="major_version" /> + <field type="CARD16" name="minor_version" /> + <reply> + <pad bytes="1"/> + <field type="CARD16" name="major_version" /> + <field type="CARD16" name="minor_version" /> + </reply> + </request> + + <request name="CreateContext" opcode="1"> + <field type="record:CONTEXT" name="context" /> + <field type="ElementHeader" name="element_header" /> + <pad bytes="3" /> + <field type="CARD32" name="num_client_specs" /> + <field type="CARD32" name="num_ranges" /> + <list type="ClientSpec" name="client_specs"> + <fieldref>num_client_specs</fieldref> + </list> + <list type="Range" name="ranges"> + <fieldref>num_ranges</fieldref> + </list> + </request> + + <request name="RegisterClients" opcode="2"> + <field type="record:CONTEXT" name="context" /> + <field type="ElementHeader" name="element_header" /> + <pad bytes="3" /> + <field type="CARD32" name="num_client_specs" /> + <field type="CARD32" name="num_ranges" /> + <list type="ClientSpec" name="client_specs"> + <fieldref>num_client_specs</fieldref> + </list> + <list type="Range" name="ranges"> + <fieldref>num_ranges</fieldref> + </list> + </request> + + <request name="UnregisterClients" opcode="3"> + <field type="record:CONTEXT" name="context" /> + <field type="CARD32" name="num_client_specs" /> + <list type="ClientSpec" name="client_specs"> + <fieldref>num_client_specs</fieldref> + </list> + </request> + + <request name="GetContext" opcode="4"> + <field type="record:CONTEXT" name="context" /> + <reply> + <field type="BOOL" name="enabled" /> + <field type="ElementHeader" name="element_header" /> + <pad bytes="3" /> + <field type="CARD32" name="num_intercepted_clients" /> + <pad bytes="16" /> + <list type="ClientInfo" name="intercepted_clients"> + <fieldref>num_intercepted_clients</fieldref> + </list> + </reply> + </request> + + <request name="EnableContext" opcode="5"> + <field type="record:CONTEXT" name="context" /> + <reply> + <field type="CARD8" name="category" /> + <field type="ElementHeader" name="element_header" /> + <field type="BOOL" name="client_swapped" /> + <pad bytes="2" /> + <field type="CARD32" name="xid_base" /> + <field type="CARD32" name="server_time" /> + <field type="CARD32" name="rec_sequence_num" /> + <pad bytes="8" /> + <list type="BYTE" name="data" /> + </reply> + </request> + + <request name="DisableContext" opcode="6"> + <field type="record:CONTEXT" name="context" /> + </request> + + <request name="FreeContext" opcode="7"> + <field type="record:CONTEXT" name="context" /> + </request> + +</xcb> diff --git a/src/extensions/render.xml b/src/extensions/render.xml new file mode 100644 index 0000000..74938be --- /dev/null +++ b/src/extensions/render.xml @@ -0,0 +1,569 @@ +<?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> diff --git a/src/extensions/res.xml b/src/extensions/res.xml new file mode 100644 index 0000000..eda0cbe --- /dev/null +++ b/src/extensions/res.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2006 Jeremy Kolb +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> +<xcb header="res" extension-xname="X-Resource" extension-name="Res"> + <struct name="Client"> + <field type="CARD32" name="resource_base" /> + <field type="CARD32" name="resource_mask" /> + </struct> + + <struct name="Type"> + <field type="CARD32" name="resource_type" /> + <field type="CARD32" name="count" /> + </struct> + + <request name="QueryVersion" opcode="0"> + <field type="CARD8" name="client_major" /> + <field type="CARD8" name="client_minor" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="server_major" /> + <field type="CARD16" name="server_minor" /> + </reply> + </request> + + <request name="QueryClients" opcode="1"> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num_clients" /> + <pad bytes="20" /> + <list type="Client" name="clients"> + <fieldref>num_clients</fieldref> + </list> + </reply> + </request> + + <request name="QueryClientResources" opcode="2"> + <field type="CARD32" name="xid" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num_types" /> + <pad bytes="20" /> + <list type="Type" name="types"> + <fieldref>num_types</fieldref> + </list> + </reply> + </request> + + <request name="QueryClientPixmapBytes" opcode="3"> + <field type="CARD32" name="xid" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="bytes" /> + <field type="CARD32" name="bytes_overflow" /> + </reply> + </request> +</xcb> diff --git a/src/extensions/screensaver.xml b/src/extensions/screensaver.xml new file mode 100644 index 0000000..18b5897 --- /dev/null +++ b/src/extensions/screensaver.xml @@ -0,0 +1,128 @@ +<!-- + +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> diff --git a/src/extensions/shape.xml b/src/extensions/shape.xml new file mode 100644 index 0000000..917388c --- /dev/null +++ b/src/extensions/shape.xml @@ -0,0 +1,147 @@ +<?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> diff --git a/src/extensions/shm.xml b/src/extensions/shm.xml new file mode 100644 index 0000000..28e8e1e --- /dev/null +++ b/src/extensions/shm.xml @@ -0,0 +1,111 @@ +<?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> diff --git a/src/extensions/sync.xml b/src/extensions/sync.xml new file mode 100644 index 0000000..4c9e9f5 --- /dev/null +++ b/src/extensions/sync.xml @@ -0,0 +1,177 @@ +<?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> diff --git a/src/extensions/xc_misc.xml b/src/extensions/xc_misc.xml new file mode 100644 index 0000000..5eb0591 --- /dev/null +++ b/src/extensions/xc_misc.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2004 Mikko Torni and Josh Triplett. +All Rights Reserved. See the file COPYING in this directory +for licensing information. +--> +<xcb header="xc_misc" extension-xname="XC-MISC" extension-name="XCMisc"> + <request name="GetVersion" opcode="0"> + <field type="CARD16" name="client_major_version" /> + <field type="CARD16" name="client_minor_version" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="server_major_version" /> + <field type="CARD16" name="server_minor_version" /> + </reply> + </request> + + <request name="GetXIDRange" opcode="1"> + <reply> + <pad bytes="1" /> + <field type="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> diff --git a/src/extensions/xevie.xml b/src/extensions/xevie.xml new file mode 100644 index 0000000..1e5851f --- /dev/null +++ b/src/extensions/xevie.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2004 Josh Triplett. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> +<!-- This file describes version 1 of XEVIE. --> +<xcb header="xevie" extension-xname="XEVIE" extension-name="Xevie"> + <request name="QueryVersion" opcode="0"> + <field type="CARD16" name="client_major_version" /> + <field type="CARD16" name="client_minor_version" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="server_major_version" /> + <field type="CARD16" name="server_minor_version" /> + <pad bytes="20" /> + </reply> + </request> + + <request name="Start" opcode="1"> + <field type="CARD32" name="screen" /> + <reply> + <pad bytes="1" /> + <pad bytes="24" /> + </reply> + </request> + + <request name="End" opcode="2"> + <field type="CARD32" name="cmap" /> + <reply> + <pad bytes="1" /> + <pad bytes="24" /> + </reply> + </request> + + <enum name="Datatype"> + <item name="Unmodified" /> + <item name="Modified" /> + </enum> + + <!-- The Send request needs to send an arbitrary Event; this type is used + to reserve the necessary structure size. --> + <struct name="Event"> + <pad bytes="32" /> + </struct> + + <request name="Send" opcode="3"> + <field type="Event" name="event" /> + <field type="CARD32" name="data_type" /> <!-- Datatype --> + <pad bytes="64" /> + <reply> + <pad bytes="1" /> + <pad bytes="24" /> + </reply> + </request> + + <request name="SelectInput" opcode="4"> + <field type="CARD32" name="event_mask" /> + <reply> + <pad bytes="1" /> + <pad bytes="24" /> + </reply> + </request> +</xcb> diff --git a/src/extensions/xf86dri.xml b/src/extensions/xf86dri.xml new file mode 100644 index 0000000..bb37ca7 --- /dev/null +++ b/src/extensions/xf86dri.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2005 Jeremy Kolb. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person ob/Sintaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> + +<xcb header="xf86dri" extension-xname="XFree86-DRI" extension-name="XF86Dri"> + + <!-- Using http://dri.sourceforge.net/doc/dri_extensions_low_level.txt --> + + <!-- Types --> + + <struct name="DrmClipRect"> + <field type="INT16" name="x1" /> + <field type="INT16" name="y1" /> + <field type="INT16" name="x2" /> + <field type="INT16" name="x3" /> + </struct> + + <!-- Requests --> + <request name="QueryVersion" opcode="0"> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="dri_major_version" /> + <field type="CARD16" name="dri_minor_version" /> + <field type="CARD32" name="dri_minor_patch" /> + </reply> + </request> + + <request name="QueryDirectRenderingCapable" opcode="1"> + <field type="CARD32" name="screen" /> + <reply> + <pad bytes="1" /> + <field type="BOOL" name="is_capable" /> + </reply> + </request> + + <request name="OpenConnection" opcode="2"> + <field type="CARD32" name="screen" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="drm_client_key_low" /> + <field type="CARD32" name="drm_client_key_high" /> + <field type="CARD32" name="sarea_handle_low" /> + <field type="CARD32" name="sarea_handle_high" /> + <field type="CARD32" name="bus_id_len" /> + <pad bytes="12" /> + <list type="CARD8" name="bus_id"> + <fieldref>bus_id_len</fieldref> + </list> + </reply> + </request> + + <request name="CloseConnection" opcode="3"> + <field type="CARD32" name="screen" /> + </request> + + <request name="GetClientDriverName" opcode="4"> + <field type="CARD32" name="screen" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="client_driver_major_version" /> + <field type="CARD32" name="client_driver_minor_version" /> + <field type="CARD32" name="client_driver_patch_version" /> + <field type="CARD32" name="client_driver_name_len" /> + <pad bytes="8" /> + <list type="CARD8" name="client_driver_name"> + <fieldref>client_driver_name_len</fieldref> + </list> + </reply> + </request> + + <request name="CreateContext" opcode="5"> + <field type="CARD32" name="visual" /> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="context" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="hw_context" /> + </reply> + </request> + + <request name="DestroyContext" opcode="6"> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="context" /> + </request> + + <request name="CreateDrawable" opcode="7"> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="drawable" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="hw_drawable_handle" /> + </reply> + </request> + + <request name="DestroyDrawable" opcode="8"> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="drawable" /> + </request> + + <request name="GetDrawableInfo" opcode="9"> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="drawable" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="drawable_table_index" /> + <field type="CARD32" name="drawable_table_stamp" /> + <field type="INT16" name="drawable_origin_X" /> + <field type="INT16" name="drawable_origin_Y" /> + <field type="INT16" name="drawable_size_W" /> + <field type="INT16" name="drawable_size_H" /> + <field type="CARD32" name="num_clip_rects" /> + <pad bytes="4" /> + <list type="DrmClipRect" name="clip_rects"> + <fieldref>num_clip_rects</fieldref> + </list> + </reply> + </request> + + <request name="GetDeviceInfo" opcode="10"> + <field type="CARD32" name="screen" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="framebuffer_handle_low" /> + <field type="CARD32" name="framebuffer_handle_high" /> + <field type="CARD32" name="framebuffer_origin_offset" /> + <field type="CARD32" name="framebuffer_size" /> + <field type="CARD32" name="framebuffer_stride" /> + <field type="CARD32" name="device_private_size" /> + <list type="CARD32" name="device_private"> + <fieldref>device_private_size</fieldref> + </list> + </reply> + </request> + + <!-- Not in this doc, but specified in Mesa/src/glx/x11/xf86dri.h --> + <request name="AuthConnection" opcode="11"> + <field type="CARD32" name="screen" /> + <field type="CARD32" name="magic" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="authenticated" /> + </reply> + </request> +</xcb> diff --git a/src/extensions/xfixes.xml b/src/extensions/xfixes.xml new file mode 100644 index 0000000..ab59637 --- /dev/null +++ b/src/extensions/xfixes.xml @@ -0,0 +1,322 @@ +<?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> diff --git a/src/extensions/xprint.xml b/src/extensions/xprint.xml new file mode 100644 index 0000000..dbabbde --- /dev/null +++ b/src/extensions/xprint.xml @@ -0,0 +1,325 @@ +<?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> + diff --git a/src/extensions/xv.xml b/src/extensions/xv.xml new file mode 100644 index 0000000..6544e30 --- /dev/null +++ b/src/extensions/xv.xml @@ -0,0 +1,429 @@ +<?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> diff --git a/src/extensions/xvmc.xml b/src/extensions/xvmc.xml new file mode 100644 index 0000000..5e61def --- /dev/null +++ b/src/extensions/xvmc.xml @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2006 Jeremy Kolb. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +--> + +<xcb header="xvmc" extension-xname="XVideo-MotionCompensation" extension-name="XvMC"> + <import>xv</import> + + <xidtype name="CONTEXT" /> + <xidtype name="SURFACE" /> + <xidtype name="SUBPICTURE" /> + + <struct name="SurfaceInfo"> + <field type="SURFACE" name="id" /> + <field type="CARD16" name="chroma_format" /> + <field type="CARD16" name="pad0" /> + <field type="CARD16" name="max_width" /> + <field type="CARD16" name="max_height" /> + <field type="CARD16" name="subpicture_max_width" /> + <field type="CARD16" name="subpicture_max_height" /> + <field type="CARD32" name="mc_type" /> + <field type="CARD32" name="flags" /> + </struct> + + <request name="QueryVersion" opcode="0"> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="major" /> + <field type="CARD32" name="minor" /> + </reply> + </request> + + <request name="ListSurfaceTypes" opcode="1"> + <field type="PORT" name="port_id" /> + <reply> + <pad bytes="1" /> + <field type="CARD32" name="num" /> + <pad bytes="20" /> + <list type="SurfaceInfo" name="surfaces"> + <fieldref>num</fieldref> + </list> + </reply> + </request> + + <request name="CreateContext" opcode="2"> + <field type="CONTEXT" name="context_id" /> + <field type="PORT" name="port_id" /> + <field type="SURFACE" name="surface_id" /> + <field type="CARD16" name="width" /> + <field type="CARD16" name="height" /> + <field type="CARD32" name="flags" /> + <reply> + <pad bytes="1" /> + <field type="CARD16" name="width_actual" /> + <field type="CARD16" name="height_actual" /> + <field type="CARD32" name="flags_return" /> + <pad 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> diff --git a/src/xcb.xsd b/src/xcb.xsd new file mode 100644 index 0000000..47f8c69 --- /dev/null +++ b/src/xcb.xsd @@ -0,0 +1,220 @@ +<?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> diff --git a/src/xcb_types.xml b/src/xcb_types.xml new file mode 100644 index 0000000..516773a --- /dev/null +++ b/src/xcb_types.xml @@ -0,0 +1,228 @@ +<?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> diff --git a/src/xproto.xml b/src/xproto.xml new file mode 100644 index 0000000..5033ff6 --- /dev/null +++ b/src/xproto.xml @@ -0,0 +1,1657 @@ +<?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> diff --git a/xcb-proto.pc.in b/xcb-proto.pc.in new file mode 100644 index 0000000..1e2e8f6 --- /dev/null +++ b/xcb-proto.pc.in @@ -0,0 +1,7 @@ +prefix=@prefix@ +includedir=@includedir@ +xcbincludedir=@xcbincludedir@ + +Name: XCBProto +Description: X protocol descriptions for XCB +Version: @PACKAGE_VERSION@ |