The XCB library provides an interface to the X Window System protocol, designed to replace the Xlib interface. It has several advantages over Xlib, including size (small library and lower memory footprint), latency hiding (batch several requests and wait for the replies later), direct protocol access (one-to-one mapping between interface and protocol), thread support (access XCB from multiple threads, with no explicit locking), and easy creation of new extensions (automatically generates its interface from machine-parsable XML protocol descriptions). Xlib can also use XCB as a transport layer, allowing software to make requests and receive responses with both, which eases porting to XCB. However, client programs, libraries, and toolkits will gain the most benefit from a native XCB port.
|Tags||Software Development Code Generators Text Processing Markup XML XSL/XSLT Libraries|
Release Notes: XID wrapper structures were removed and replaced with uint32_t typedefs. The API conversion script was updated. xcb_generate_id was moved from xcbext.h to xcb.h. The error out-parameter for xcb_poll_for_event was removed; connection error objects should be used instead. The XCB IO lock for Xlib is no longer exposed; xcb_xlib_lock and xcb_xlib_unlock are provided instead. The code generator no longer implicitly imports xproto for extensions. Generated protocol headers now declare struct/union/enum foo, not just a typedef "foo" of an unnamed struct/union/enum type. Checked requests now work correctly. xcb_generate_id was documented. The tutorial was updated.
Release Notes: The naming conventions for the internal code were changed from CamelCase to underscore_sep with no abbreviations. Deprecated functions were removed. SONAMEs were changed. Headers were moved. A conversion script is provided. Checked and unchecked request functions are offered for inline or event-queue error handling. Connection errors are handled via connections in error state. xcb_sync was removed. Extension init functions were removed; call xcb_get_extension_data instead. Dependency on X.h was removed. Xlib-only functions were moved to libxcb-xlib. Building with non-GNU implementations of Make was fixed. 32-bit wrapping of sequence numbers is handled. The monolithic GIT repository was split.
No changes have been submitted for this release.