X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fxml-xcb.txt;h=feb99844f4d118784e49614f1c490f4f6af04549;hb=78e48a24c7df2381269fc6c6accc3b44bc237ab2;hp=f4284933917098bef76ea4b14389c8942b4d891e;hpb=ab4393d3a63dde6fca2a167f7d6aaf64972b02f0;p=free-sw%2Fxcb%2Fproto diff --git a/doc/xml-xcb.txt b/doc/xml-xcb.txt index f428493..feb9984 100644 --- a/doc/xml-xcb.txt +++ b/doc/xml-xcb.txt @@ -1,53 +1,25 @@ - XML-XCB + xcb/proto 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 . XML-XCB consists of: +xcb/proto is a set of XML files describing the X Window System protocol +It is designed for use with libxcb, the X C binding +. xcb/proto consists of: xcb.xsd An XML Schema defining the data format for describing the X - protocol. Included in xcb-proto. + protocol. -c-client.xsl An XSLT code generator that transforms the protocol descriptions - into C bindings. Included in xcb. +*.py Code generator helpers that read the protocol descriptions + into python structures. See libxcb for example usage. *.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 - and the EXSLT node-set extension -. The XCB build -system currently uses xsltproc. You can get xsltproc through your -distribution's packaging system, or from . 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 +See libxcb . Protocol Description Format @@ -206,6 +178,12 @@ separated by a single colon. For example, to refer to the PIXMAP type defined in glx rather than the one defined in xproto, use type="glx:PIXMAP" rather than type="PIXMAP". +Note: Most of the below may optionally contain an enum, altenum, or mask +attribute, which follows the above rules for "type". "enum" is an exhaustive +enum; the value is restricted to one of the constants named in the enum. +"altenum" may be one of the values contained in the enum, but it need not be. +"mask" refers to an enum to be used as a bitmask. + This element declares some padding in a data structure. The bytes