summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/xcb/libxcb/shm.c
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2019-02-19 10:09:19 +0100
committerGatis Paeglis <gatis.paeglis@qt.io>2019-08-27 01:06:40 +0200
commit60588e1a5dd9b10803e078c741271cbe5713a51b (patch)
treeea23ed6e0700aadcba7c323261e331dadd8af132 /src/3rdparty/xcb/libxcb/shm.c
parent5bb178c479a247720fbc3fbb7f06a32b725193ac (diff)
3rdparty: remove xcb libs and bump minimal required version to 1.11
With libxcb 1.11 as minimal required version we can: (a) (Maybe) Enable threaded GL for MESA, see QTBUG-67277. (b) Avoid performance issues described in QTBUG-46017. Bundled xcb libs don't contain the more modern SHM fd passing APIs. The official binaries use "-qt-xcb", therefore we were shipping with the performance fix #ifdef-ed out. (c) Make xcb-xkb a mandatory dependency avoiding issues described in QTBUG-30911. Issues that appear when Qt was configure with "-no-xkb -xcb-xlib", but X server has the XKB extension. (d) Drop all, but xcb-xinput sources from src/3rdparty/xcb/, for which we need "xcb-xinput >= 1.12". This way we can reduce maintenance work. The xcb libraries were origianlly bundled because of lack of availability on supported distributions. This is not the case anymore: CI for Qt 5.13 has: Ubuntu 18.04 - libxcb 1.13 RHEL 7.4 - libxcb 1.13 openSUSE 15.0 - libxcb 1.13 CI for Qt 5.12 has: Ubuntu 16.04 - libxcb 1.11 RHEL 7.4 - libxcb 1.13 openSUSE 42.3 - libxcb 1.11 RHEL 6.x - not relevant because it was dropped from supported platforms. Why 1.11 (released on Aug, 2014), but not 1.13 (released on March 2018)? Based on what we have in CI for 5.13 and 5.14 we could update to 1.13, but it means that Qt would require a very recent version of 3rd party dependency. [ChangeLog][Configure][X11] The minimal required version of libxcb now is 1.11. [ChangeLog][Third-Party Code][X11] Removed all bundled XCB libs, with the exception of xcb-xinput, which is not available on systems with libxcb 1.11. [ChangeLog][Configure][X11] Removed -qt-xcb, -system-xcb, -xkb, -xcb-xinput switches. [ChangeLog][Platform Specific Changes][X11] XKB and XInput2 now are mandatory dependencies for XCB plugin. XCB-XKB is a part of libxcb 1.11 releases. XCB-XInput is not part of libxcb 1.11 releases, but Qt builders can use -bundled-xcb-xinput switch. Fixes: QTBUG-73862 Fixes: QTBUG-73888 Task-number: QTBUG-67277 Task-number: QTBUG-30939 Change-Id: I4c2bd2a0e667220d32fd1fbfa1419c844f17fcce Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/3rdparty/xcb/libxcb/shm.c')
-rw-r--r--src/3rdparty/xcb/libxcb/shm.c724
1 files changed, 0 insertions, 724 deletions
diff --git a/src/3rdparty/xcb/libxcb/shm.c b/src/3rdparty/xcb/libxcb/shm.c
deleted file mode 100644
index 0a1c238732..0000000000
--- a/src/3rdparty/xcb/libxcb/shm.c
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
- * This file generated automatically from shm.xml by c_client.py.
- * Edit at your peril.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <stddef.h> /* for offsetof() */
-#include "xcbext.h"
-#include "shm.h"
-
-#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)
-#include "xproto.h"
-
-xcb_extension_t xcb_shm_id = { "MIT-SHM", 0 };
-
-
-/*****************************************************************************
- **
- ** void xcb_shm_seg_next
- **
- ** @param xcb_shm_seg_iterator_t *i
- ** @returns void
- **
- *****************************************************************************/
-
-void
-xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */)
-{
- --i->rem;
- ++i->data;
- i->index += sizeof(xcb_shm_seg_t);
-}
-
-
-/*****************************************************************************
- **
- ** xcb_generic_iterator_t xcb_shm_seg_end
- **
- ** @param xcb_shm_seg_iterator_t i
- ** @returns xcb_generic_iterator_t
- **
- *****************************************************************************/
-
-xcb_generic_iterator_t
-xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */)
-{
- xcb_generic_iterator_t ret;
- ret.data = i.data + i.rem;
- ret.index = i.index + ((char *) ret.data - (char *) i.data);
- ret.rem = 0;
- return ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_query_version_cookie_t xcb_shm_query_version
- **
- ** @param xcb_connection_t *c
- ** @returns xcb_shm_query_version_cookie_t
- **
- *****************************************************************************/
-
-xcb_shm_query_version_cookie_t
-xcb_shm_query_version (xcb_connection_t *c /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_QUERY_VERSION,
- /* isvoid */ 0
- };
-
- struct iovec xcb_parts[4];
- xcb_shm_query_version_cookie_t xcb_ret;
- xcb_shm_query_version_request_t xcb_out;
-
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked
- **
- ** @param xcb_connection_t *c
- ** @returns xcb_shm_query_version_cookie_t
- **
- *****************************************************************************/
-
-xcb_shm_query_version_cookie_t
-xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_QUERY_VERSION,
- /* isvoid */ 0
- };
-
- struct iovec xcb_parts[4];
- xcb_shm_query_version_cookie_t xcb_ret;
- xcb_shm_query_version_request_t xcb_out;
-
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_query_version_reply_t * xcb_shm_query_version_reply
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_query_version_cookie_t cookie
- ** @param xcb_generic_error_t **e
- ** @returns xcb_shm_query_version_reply_t *
- **
- *****************************************************************************/
-
-xcb_shm_query_version_reply_t *
-xcb_shm_query_version_reply (xcb_connection_t *c /**< */,
- xcb_shm_query_version_cookie_t cookie /**< */,
- xcb_generic_error_t **e /**< */)
-{
- return (xcb_shm_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_attach_checked
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t shmid
- ** @param uint8_t read_only
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_attach_checked (xcb_connection_t *c /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t shmid /**< */,
- uint8_t read_only /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_ATTACH,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_attach_request_t xcb_out;
-
- xcb_out.shmseg = shmseg;
- xcb_out.shmid = shmid;
- xcb_out.read_only = read_only;
- memset(xcb_out.pad0, 0, 3);
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_attach
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t shmid
- ** @param uint8_t read_only
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_attach (xcb_connection_t *c /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t shmid /**< */,
- uint8_t read_only /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_ATTACH,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_attach_request_t xcb_out;
-
- xcb_out.shmseg = shmseg;
- xcb_out.shmid = shmid;
- xcb_out.read_only = read_only;
- memset(xcb_out.pad0, 0, 3);
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_detach_checked
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_seg_t shmseg
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_detach_checked (xcb_connection_t *c /**< */,
- xcb_shm_seg_t shmseg /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_DETACH,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_detach_request_t xcb_out;
-
- xcb_out.shmseg = shmseg;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_detach
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_seg_t shmseg
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_detach (xcb_connection_t *c /**< */,
- xcb_shm_seg_t shmseg /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_DETACH,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_detach_request_t xcb_out;
-
- xcb_out.shmseg = shmseg;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_put_image_checked
- **
- ** @param xcb_connection_t *c
- ** @param xcb_drawable_t drawable
- ** @param xcb_gcontext_t gc
- ** @param uint16_t total_width
- ** @param uint16_t total_height
- ** @param uint16_t src_x
- ** @param uint16_t src_y
- ** @param uint16_t src_width
- ** @param uint16_t src_height
- ** @param int16_t dst_x
- ** @param int16_t dst_y
- ** @param uint8_t depth
- ** @param uint8_t format
- ** @param uint8_t send_event
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_put_image_checked (xcb_connection_t *c /**< */,
- xcb_drawable_t drawable /**< */,
- xcb_gcontext_t gc /**< */,
- uint16_t total_width /**< */,
- uint16_t total_height /**< */,
- uint16_t src_x /**< */,
- uint16_t src_y /**< */,
- uint16_t src_width /**< */,
- uint16_t src_height /**< */,
- int16_t dst_x /**< */,
- int16_t dst_y /**< */,
- uint8_t depth /**< */,
- uint8_t format /**< */,
- uint8_t send_event /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_PUT_IMAGE,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_put_image_request_t xcb_out;
-
- xcb_out.drawable = drawable;
- xcb_out.gc = gc;
- xcb_out.total_width = total_width;
- xcb_out.total_height = total_height;
- xcb_out.src_x = src_x;
- xcb_out.src_y = src_y;
- xcb_out.src_width = src_width;
- xcb_out.src_height = src_height;
- xcb_out.dst_x = dst_x;
- xcb_out.dst_y = dst_y;
- xcb_out.depth = depth;
- xcb_out.format = format;
- xcb_out.send_event = send_event;
- xcb_out.pad0 = 0;
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_put_image
- **
- ** @param xcb_connection_t *c
- ** @param xcb_drawable_t drawable
- ** @param xcb_gcontext_t gc
- ** @param uint16_t total_width
- ** @param uint16_t total_height
- ** @param uint16_t src_x
- ** @param uint16_t src_y
- ** @param uint16_t src_width
- ** @param uint16_t src_height
- ** @param int16_t dst_x
- ** @param int16_t dst_y
- ** @param uint8_t depth
- ** @param uint8_t format
- ** @param uint8_t send_event
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_put_image (xcb_connection_t *c /**< */,
- xcb_drawable_t drawable /**< */,
- xcb_gcontext_t gc /**< */,
- uint16_t total_width /**< */,
- uint16_t total_height /**< */,
- uint16_t src_x /**< */,
- uint16_t src_y /**< */,
- uint16_t src_width /**< */,
- uint16_t src_height /**< */,
- int16_t dst_x /**< */,
- int16_t dst_y /**< */,
- uint8_t depth /**< */,
- uint8_t format /**< */,
- uint8_t send_event /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_PUT_IMAGE,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_put_image_request_t xcb_out;
-
- xcb_out.drawable = drawable;
- xcb_out.gc = gc;
- xcb_out.total_width = total_width;
- xcb_out.total_height = total_height;
- xcb_out.src_x = src_x;
- xcb_out.src_y = src_y;
- xcb_out.src_width = src_width;
- xcb_out.src_height = src_height;
- xcb_out.dst_x = dst_x;
- xcb_out.dst_y = dst_y;
- xcb_out.depth = depth;
- xcb_out.format = format;
- xcb_out.send_event = send_event;
- xcb_out.pad0 = 0;
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_get_image_cookie_t xcb_shm_get_image
- **
- ** @param xcb_connection_t *c
- ** @param xcb_drawable_t drawable
- ** @param int16_t x
- ** @param int16_t y
- ** @param uint16_t width
- ** @param uint16_t height
- ** @param uint32_t plane_mask
- ** @param uint8_t format
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_shm_get_image_cookie_t
- **
- *****************************************************************************/
-
-xcb_shm_get_image_cookie_t
-xcb_shm_get_image (xcb_connection_t *c /**< */,
- xcb_drawable_t drawable /**< */,
- int16_t x /**< */,
- int16_t y /**< */,
- uint16_t width /**< */,
- uint16_t height /**< */,
- uint32_t plane_mask /**< */,
- uint8_t format /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_GET_IMAGE,
- /* isvoid */ 0
- };
-
- struct iovec xcb_parts[4];
- xcb_shm_get_image_cookie_t xcb_ret;
- xcb_shm_get_image_request_t xcb_out;
-
- xcb_out.drawable = drawable;
- xcb_out.x = x;
- xcb_out.y = y;
- xcb_out.width = width;
- xcb_out.height = height;
- xcb_out.plane_mask = plane_mask;
- xcb_out.format = format;
- memset(xcb_out.pad0, 0, 3);
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_get_image_cookie_t xcb_shm_get_image_unchecked
- **
- ** @param xcb_connection_t *c
- ** @param xcb_drawable_t drawable
- ** @param int16_t x
- ** @param int16_t y
- ** @param uint16_t width
- ** @param uint16_t height
- ** @param uint32_t plane_mask
- ** @param uint8_t format
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_shm_get_image_cookie_t
- **
- *****************************************************************************/
-
-xcb_shm_get_image_cookie_t
-xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */,
- xcb_drawable_t drawable /**< */,
- int16_t x /**< */,
- int16_t y /**< */,
- uint16_t width /**< */,
- uint16_t height /**< */,
- uint32_t plane_mask /**< */,
- uint8_t format /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_GET_IMAGE,
- /* isvoid */ 0
- };
-
- struct iovec xcb_parts[4];
- xcb_shm_get_image_cookie_t xcb_ret;
- xcb_shm_get_image_request_t xcb_out;
-
- xcb_out.drawable = drawable;
- xcb_out.x = x;
- xcb_out.y = y;
- xcb_out.width = width;
- xcb_out.height = height;
- xcb_out.plane_mask = plane_mask;
- xcb_out.format = format;
- memset(xcb_out.pad0, 0, 3);
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_shm_get_image_reply_t * xcb_shm_get_image_reply
- **
- ** @param xcb_connection_t *c
- ** @param xcb_shm_get_image_cookie_t cookie
- ** @param xcb_generic_error_t **e
- ** @returns xcb_shm_get_image_reply_t *
- **
- *****************************************************************************/
-
-xcb_shm_get_image_reply_t *
-xcb_shm_get_image_reply (xcb_connection_t *c /**< */,
- xcb_shm_get_image_cookie_t cookie /**< */,
- xcb_generic_error_t **e /**< */)
-{
- return (xcb_shm_get_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_create_pixmap_checked
- **
- ** @param xcb_connection_t *c
- ** @param xcb_pixmap_t pid
- ** @param xcb_drawable_t drawable
- ** @param uint16_t width
- ** @param uint16_t height
- ** @param uint8_t depth
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */,
- xcb_pixmap_t pid /**< */,
- xcb_drawable_t drawable /**< */,
- uint16_t width /**< */,
- uint16_t height /**< */,
- uint8_t depth /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_CREATE_PIXMAP,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_create_pixmap_request_t xcb_out;
-
- xcb_out.pid = pid;
- xcb_out.drawable = drawable;
- xcb_out.width = width;
- xcb_out.height = height;
- xcb_out.depth = depth;
- memset(xcb_out.pad0, 0, 3);
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-
-
-/*****************************************************************************
- **
- ** xcb_void_cookie_t xcb_shm_create_pixmap
- **
- ** @param xcb_connection_t *c
- ** @param xcb_pixmap_t pid
- ** @param xcb_drawable_t drawable
- ** @param uint16_t width
- ** @param uint16_t height
- ** @param uint8_t depth
- ** @param xcb_shm_seg_t shmseg
- ** @param uint32_t offset
- ** @returns xcb_void_cookie_t
- **
- *****************************************************************************/
-
-xcb_void_cookie_t
-xcb_shm_create_pixmap (xcb_connection_t *c /**< */,
- xcb_pixmap_t pid /**< */,
- xcb_drawable_t drawable /**< */,
- uint16_t width /**< */,
- uint16_t height /**< */,
- uint8_t depth /**< */,
- xcb_shm_seg_t shmseg /**< */,
- uint32_t offset /**< */)
-{
- static const xcb_protocol_request_t xcb_req = {
- /* count */ 2,
- /* ext */ &xcb_shm_id,
- /* opcode */ XCB_SHM_CREATE_PIXMAP,
- /* isvoid */ 1
- };
-
- struct iovec xcb_parts[4];
- xcb_void_cookie_t xcb_ret;
- xcb_shm_create_pixmap_request_t xcb_out;
-
- xcb_out.pid = pid;
- xcb_out.drawable = drawable;
- xcb_out.width = width;
- xcb_out.height = height;
- xcb_out.depth = depth;
- memset(xcb_out.pad0, 0, 3);
- xcb_out.shmseg = shmseg;
- xcb_out.offset = offset;
-
- xcb_parts[2].iov_base = (char *) &xcb_out;
- xcb_parts[2].iov_len = sizeof(xcb_out);
- xcb_parts[3].iov_base = 0;
- xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
-
- xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
- return xcb_ret;
-}
-