summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Remove "All rights reserved" from Oracle copyright noticesHEADmasterAlan Coopersmith2023-04-091-1/+1
| | | | | | Oracle no longer includes this term in our copyright & license notices. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* xinput: qualify CW as from xprotoTycho Andersen2023-03-231-15/+15
| | | | | | | Otherwise it's hard to tell where this came from, and we qualify most everything else in this file anyway. Signed-off-by: Tycho Andersen <tycho@tycho.pizza>
* Add documentation for DAMAGE extensionAlan Coopersmith2023-02-091-0/+106
| | | | | | | Based on https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/blob/master/damageproto.txt Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Add documentation for CompositeDemi Marie Obenour2022-10-161-0/+122
| | | | | | | This is useful, but it crashes the XCB code generator. xorg/lib/libxcb!38 prevents the crash. Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
* Document BIG-REQUESTSDemi Marie Obenour2022-10-151-0/+14
| | | | Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
* Add documentation for XFixes v6Demi Marie Obenour2022-08-081-1/+24
| | | | | | This was previously added but was not documented. Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
* autogen: add default patch prefixMihail Konev2022-07-241-0/+3
| | | | | Signed-off-by: Mihail Konev <k.mvc@ya.ru> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* autogen.sh: use quoted string variablesEmil Velikov2022-07-241-4/+4
| | | | | | | | | | Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent fall-outs, when they contain space. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* autogen.sh: use exec instead of waiting for configure to finishPeter Hutterer2022-07-241-1/+1
| | | | | | | | Syncs the invocation of configure with the one from the server. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* gitlab CI: add a basic build testAlan Coopersmith2022-07-231-0/+129
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Document the MIT-SHM extensionDemi Marie Obenour2022-07-031-0/+214
| | | | | | This adds documentation for the entire MIT-SHM extension. Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
* xcb-proto 1.15.2xcb-proto-1.15.2Matt Turner2022-06-171-1/+1
| | | | Signed-off-by: Matt Turner <mattst88@gmail.com>
* Call AC_OUTPUT without argumentsMatt Turner2022-06-171-1/+2
| | | | | | | configure.ac:22: warning: AC_OUTPUT should be used without arguments. configure.ac:22: You should run autoupdate. Signed-off-by: Matt Turner <mattst88@gmail.com>
* Install xcb-proto to $(datarootdir)Matt Turner2022-06-171-1/+1
| | | | | | ... i.e. to /usr/share/pkgconfig. Signed-off-by: Matt Turner <mattst88@gmail.com>
* Remove libdir from xcb-proto.pcMatt Turner2022-06-171-1/+0
| | | | | | | | | | | | Added by 17ab095 ("add libdir/exec_prefix to xcb-xproto.pc") with the rationale of using it to find the python path, but later commits bd7a481 ("pkg-config: Add sysroot prefix") and be9c255 ("Adjust to automake 1.16.4 changes") make this directly accessible. By removing libdir from the pkgconfig file, the file becomes identical for different ABIs. Signed-off-by: Matt Turner <mattst88@gmail.com>
* xcb-proto 1.15.1xcb-proto-1.15.1Matt Turner2022-06-161-1/+1
| | | | Signed-off-by: Matt Turner <mattst88@gmail.com>
* Add DOUBLE-BUFFER extension specification.Mike Sharov2022-06-162-0/+153
|
* dri3: Update dri3.xml to DRI3 1.3Austin Shafer2022-05-271-1/+8
| | | | This adds DRI3SetDRMDeviceInUse.
* xcb-proto 1.15xcb-proto-1.15Matt Turner2022-05-031-1/+1
| | | | Signed-off-by: Matt Turner <mattst88@gmail.com>
* glx,xprint: place explicit padding between listsPeter Harris2021-12-212-4/+6
| | | | | | | | Adjacent lists of char should not have any automatic padding added, since the alignment requirements for both are the same. Add explicit padding where it is required. Signed-off-by: Peter Harris <pharris@opentext.com>
* Adjust to automake 1.16.4 changes Joshua Root2021-11-171-0/+1
| | | The pythondir variable is now defined relative to ${PYTHON_PREFIX}.
* Fix python version check from 65169c1af7893882c21d1e2a544903212b8d6fb0Alex Richardson2021-10-041-1/+2
| | | | | With commit 65169c1af7893882c21d1e2a544903212b8d6fb0, I am seeing build failures in libxcb, using sys.version_info fixes those.
* Use xml.etree.cElementTree where appropriateUli Schlachter2021-09-301-1/+6
| | | | | | | | | | | | | | | This makes the code added in the previous commit consistent with the rest of the code base. From Björn's suggestion: This should import xml.etree.{,c}ElementTree conditionally on the version of the Python interpreter used to import this module. xml.etree.ElementTree is preferred for Python >= 3.3, as it uses the fastest possible implementation automatically. Earlier versions of Python need xml.etree.cElementTree as they may not have an implementation that can be used in a platform generic way. Suggested-by: Björn Esser <besser82@fedoraproject.org>
* Add missing fields to errorsUli Schlachter2021-09-301-0/+10
| | | | | | | | | | | | | | | | | | | | | | | All X11 errors have the same fields. There are no differences. In a perfect world, the XML could thus just say "define an error" and xcbgen would do all the rest. However, the world is imperfect and we already have a mixture of fields defined in the XML. Some of the XML even defines trailing padding, while most does not. This commit makes xcbgen add all fields to X11 errors, but those that are already defined in the XML are skipped and left as-is. Due to the structure of the code, this requires pretending that a different XML was read, i.e. the code now modifies the in-memory structure of ElementTree to add the missing fields to the in-memory representation of the XML. This is the simplest way that I found to append elements. The existing mechanisms can only prepend fields. The approach taken by this commit was suggested by Peter Harris. Thanks a lot for this idea, it's a lot simpler than my previous approach. Fixes: https://gitlab.freedesktop.org/xorg/proto/xcbproto/-/issues/16 Signed-off-by: Uli Schlachter <psychon@znc.in>
* xinput: Add XI v2.4Povilas Kanapickas2021-09-221-6/+88
| | | | | XInput 2.4 introduces touchpad gesture support which includes 6 new events: Gesture{Pinch,Swipe}{Begin,Update,End}.
* xinput: Add length specification for DeviceClass structPovilas Kanapickas2021-09-021-0/+6
|
* Add element to specify expression that defines length of a structPovilas Kanapickas2021-09-023-2/+33
| | | | | | | | | | | | | | | | Currently the layout of a struct is used to compute its size. This works fine in case of structs of fixed size. However this introduces forwards-compatibility problems in cases when the struct has multiple variants and the exact variant is specified by the value of some field (e.g. in the case of <switch> elements). Future revisions of protocols may introduce new layout variants, in which case the old code does not know the size of the struct variant and can't parse the incoming byte stream. Instead of relying on knowledge about the layout of data structures we should instead use the length field for length information. This way when old client libxcb communicates with newer server it can at least ignore unknown struct variants.
* xfixes: Add ClientDisconnectModeOlivier Fourdan2021-07-221-1/+21
| | | | | | | | | | | | | | | | | | | | | The Xserver itself is capable of terminating itself once all X11 clients are gone, yet in a typical full session, there are a number of X11 clients running continuously (e.g. the Xsettings daemon, IBus, etc.). Those always-running clients will prevent the Xserver from terminating, because the actual number of X11 clients will never drop to 0. To solve this issue directly at the Xserver level, this add new entries to the XFixes extension to let the X11 clients themselves specify the disconnect mode they expect. Typically, those X11 daemon clients would specify the disconnect mode XFixesClientDisconnectFlagTerminate to let the Xserver know that they should not be accounted for when checking the remaining clients prior to terminate. Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Simon Ser <contact@emersion.fr>
* xproto.xml: Update doc text for GrabKeyAlan Coopersmith2021-06-011-8/+5
| | | | | | | A little too much copy-and-paste from the GrabPointer doc text had happened here. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* xcb-proto 1.14.1xcb-proto-1.14.1Alan Coopersmith2020-10-082-1/+6
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* Fix typo in documentationSamanta Navarro2020-10-031-1/+1
| | | | Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
* xcbgen: Use xml.etree.ElementTree for Python >= 3.3.Björn Esser2020-06-042-2/+2
| | | | | | | | | | | | | | In commit 7d58eed95f796fc764741d7549ee2214bbbcc64c we started to use xml.etree.ElementTree for Python >= 3.9. In fact the xml.etree.cElementTree module has already been deprecated since Python 3.3. Given this fact, we should start to use the xml.etree.ElementTree module beginning with Python 3.3. See: https://github.com/python/cpython/commit/a72a98f24a19928e31dcc4cab2cd2ad0f1846e11 Signed-off-by: Björn Esser <besser82@fedoraproject.org>
* xcbgen: xml.etree.cElementTree has been dropped in Python 3.9.Björn Esser2020-06-012-2/+12
| | | | | | It can be replaced with xml.etree.ElementTree safely. Signed-off-by: Björn Esser <besser82@fedoraproject.org>
* xcbgen: Use math.gcd() for Python >= 3.5.Björn Esser2020-06-011-1/+6
| | | | | | | | fractions.gcd() has been deprecated since Python 3.5, and was finally dropped in Python 3.9. It is recommended to use math.gcd() instead. Signed-off-by: Björn Esser <besser82@fedoraproject.org>
* Parse a field's "enum=" correctlyUli Schlachter2020-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In xv.xml, there is something like this: <struct name="ImageFormatInfo"> [...] <field type="CARD8" name="byte_order" enum="ImageOrder" /> <pad bytes="2" /> <list type="CARD8" name="guid"> <value>16</value> </list> [...] </struct> When parsing this, the Field instance for "guid" ended up with .enum == "ImageOrder". This is because the loop that parses complex type did not unset a variable across iterations, meaning that the last "enum" property "stuck" and was also used for all following fields. Fix this by simply moving the initialisation of the "enum" variable inside of the loop. Signed-off-by: Uli Schlachter <psychon@znc.in>
* Release xcb-proto 1.14xcb-proto-1.14Matt Turner2020-02-222-1/+7
| | | | Signed-off-by: Matt Turner <mattst88@gmail.com>
* Build xz tarballs instead of bzip2Matt Turner2020-02-221-1/+1
| | | | Signed-off-by: Matt Turner <mattst88@gmail.com>
* Allow access to the original type in the XMLUli Schlachter2019-12-282-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | xcbgen 'helpfully' transforms things to C types already so that libxcb does not have to do so. Thus, even though the XML says that a field has type CARD8, xcbgen will claim uint8_t. This might be a bit weird, but is so far totally fine. However, the type mapping that xcbgen uses is not injective. All of CARD8, BYTE and BOOL get turned into uint8_t and the original type is lost. This is totally fine for libxcb, but programming languages other than C do have built in boolean types. My personal problem is with Rust, where providing a boolean for an integer argument causes a compiler error. This results in (relatively) ugly "0 / 1" instead of "false / true". This commit adds a new xml_type member to SimpleType. This type contains the original string that appeared in the XML file. Since libxcb creates instances of SimpleType itself and to avoid breaking the API, the new argument to SimpleType.__init__ defaults to None. Signed-off-by: Uli Schlachter <psychon@znc.in>
* Fix size computation of imported listsUli Schlachter2019-12-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | XFixes contains a CreateRegion request: <request name="CreateRegion" opcode="5"> <field type="REGION" name="region" /> <list type="RECTANGLE" name="rectangles" /> </request> This request contains a list of type RECTANGLE. This struct comes from xproto and is thus not contained in xfixes itself. Normal "Struct"s have their resolve() method called early, because they appear in the module itself. However, in the CreateRegion case, this struct is imported and thus does not get resolved. Instead, ListType's resolve() method calls self.member.resolve(module). Thus, only at this point is the struct resolved. Why is this important? Struct.resolve() is the same as ComplexType.resolve() and this function does self.calc_size() at the end. Thus, only after the struct was resolved is its size known. Before that, the size is just set to 0 (this happens in ComplexType.__init__). However, ListType.__init__ already computes its size member based on its member. At this point, this is still 0 so the list ends up believing its size to be zero. Fix this by recomputing self.size in ListType.resolve(). Signed-off-by: Uli Schlachter <psychon@znc.in>
* Removed unused member "fds"Uli Schlachter2019-11-021-1/+0
| | | | | | | According to git grep '\.fds', this does not appear anywhere else in xcb-proto or libxcb. Signed-off-by: Uli Schlachter <psychon@znc.in>
* pkg-config: Add sysroot prefixDaniel Stone2019-04-271-2/+2
| | | | | | | | | | | | | | | | | xcb-proto's pkg-config file exports static file paths for where to find its Python files and the XML definitions. When used to discover cflags, library paths, etc, pkg-config will prepend ${PKG_CONFIG_SYSROOT_DIR}, if any, to those paths. This makes the use of a sysroot prefix transparent to users. However, since it doesn't know about paths in custom variables, it cannot automatically prefix this. Adding ${pc_sysrootdir} to these absolute paths makes the behaviour match, and XCB builds work out of the box in a sysroot. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net>
* Update README for gitlab migrationAlan Coopersmith2019-02-172-13/+15
| | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
* screensaver: Use CARD32 encoding for ScreenSaverSuspend 'suspend'Keith Packard2018-03-141-2/+1
| | | | | | | | | This was set to BOOL, but the protocol headers used Bool, presumably a 32-bit type. We're switching everything to CARD32 as the best option for compatibility. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Mihai Moldovan <ionic@ionic.de>
* Release xcb-proto 1.13xcb-proto-1.13Daniel Stone2018-02-282-1/+12
| | | | | | | | | | | | | | | | | This release adds support for variable-sized lists of FDs (e.g. sized by a field in the request/event), as well as several other cleanups and fixes in the core code. DRI3 has been bumped to v1.2, using the new support to support multi-planar buffers and DRM modifiers. Present has also been bumped to v1.2, adding a new token for the server to indicate to the client that it should reallocate its buffers. RandR has been updated to 1.6, adding support for DRM leases to allow clients to directly control outputs. Signed-off-by: Daniel Stone <daniels@collabora.com>
* present: Add PresentModeSuboptimalCopy flagLouis-Francis Ratté-Boulianne2018-02-281-1/+3
| | | | | | | | | | | | This flag (returned with PresentCompleteNotify event) indicates that the window could have been flipped instead of copied if the buffer format/modifier was different. Clients must indicate that they support the flag by adding option PresentOptionSuboptimal when calling PresentPixmap. v2: Add PresentOptionSuboptimal Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
* DRI3: Add multi-planar and modifier supportLouis-Francis Ratté-Boulianne2018-02-281-1/+70
| | | | | | | | | | | | | | | Bumping to version 1.2, add support for: - querying formats and modifiers supported by the server - creating (and receiving) multi-planar buffers - creating (and receiving) buffers with modifiers v2: Fix alignment v3: Bump to version 1.2 rather than 1.1. The old dri3proto had a '1.1' release for non-functional changes, so we avoid that version and skip directly to 1.2. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
* Add RandR leases. [v2]Keith Packard2017-12-151-15/+52
| | | | | | | | See the description in the randrproto repository. Add lease notify event Signed-off-by: Keith Packard <keithp@keithp.com>
* xcbgen: Add support for lists of FDsDaniel Stone2017-06-051-4/+24
| | | | | | | | | | Add a special case in ListType to support lists of file descriptors, which also requires explicit support within clients. File descriptors are not supported as children of other complex types, e.g. switch. Signed-off-by: Daniel Stone <daniels@collabora.com>
* xinput: remove TODO that is doneChristian Linhart2017-05-131-21/+0
| | | | | | | | The last item from this TODO list has been implemented by the commit "SendExtensionEvent uses eventstruct": https://cgit.freedesktop.org/xcb/proto/commit/?id=97fbba25baf241cbcda882739db423b1d36e440a Signed-off-by: Christian Linhart <chris@demorecorder.com>
* SendExtensionEvent uses eventstructChristian Linhart2017-03-111-19/+38
| | | | | | | | | | | | | | | | Use the eventstruct element to define the SendExtensionEvent request instead of using a byte-array. This has the advantage that the structure of the data to be sent is now defined in the xml definition. This can be used by generators to make sending events safer. Such as avoiding type-casts in C. It can also be useful for protocol analyzers and tools like that because the structure of the sent events is now defined in the xml-definition. Tested-by: Christian Linhart <chris@demorecorder.com> Signed-off-by: Christian Linhart <chris@demorecorder.com>