XCB: XCB Shm API

XCB 1.17.0

Data Structures | Macros | Typedefs | Functions | Variables
XCB Shm API

Shm XCB Protocol Implementation. More...

## Data Structures
struct | xcb_shm_seg_iterator_t
| xcb_shm_seg_iterator_t More...
struct | xcb_shm_completion_event_t
| xcb_shm_completion_event_t More...
struct | xcb_shm_query_version_cookie_t
| xcb_shm_query_version_cookie_t More...
struct | xcb_shm_query_version_request_t
| xcb_shm_query_version_request_t More...
struct | xcb_shm_query_version_reply_t
| xcb_shm_query_version_reply_t More...
struct | xcb_shm_attach_request_t
| xcb_shm_attach_request_t More...
struct | xcb_shm_detach_request_t
| xcb_shm_detach_request_t More...
struct | xcb_shm_put_image_request_t
| xcb_shm_put_image_request_t More...
struct | xcb_shm_get_image_cookie_t
| xcb_shm_get_image_cookie_t More...
struct | xcb_shm_get_image_request_t
| xcb_shm_get_image_request_t More...
struct | xcb_shm_get_image_reply_t
| xcb_shm_get_image_reply_t More...
struct | xcb_shm_create_pixmap_request_t
| xcb_shm_create_pixmap_request_t More...
struct | xcb_shm_attach_fd_request_t
| xcb_shm_attach_fd_request_t More...
struct | xcb_shm_create_segment_cookie_t
| xcb_shm_create_segment_cookie_t More...
struct | xcb_shm_create_segment_request_t
| xcb_shm_create_segment_request_t More...
struct | xcb_shm_create_segment_reply_t
| xcb_shm_create_segment_reply_t More...

## Macros
#define | XCB_SHM_MAJOR_VERSION 1
#define | XCB_SHM_MINOR_VERSION 2
#define | XCB_SHM_COMPLETION 0
#define | XCB_SHM_BAD_SEG 0
#define | XCB_SHM_QUERY_VERSION 0
#define | XCB_SHM_ATTACH 1
#define | XCB_SHM_DETACH 2
#define | XCB_SHM_PUT_IMAGE 3
#define | XCB_SHM_GET_IMAGE 4
#define | XCB_SHM_CREATE_PIXMAP 5
#define | XCB_SHM_ATTACH_FD 6
#define | XCB_SHM_CREATE_SEGMENT 7

## Typedefs
typedef uint32_t | xcb_shm_seg_t
typedef struct xcb_shm_seg_iterator_t | xcb_shm_seg_iterator_t
| xcb_shm_seg_iterator_t
typedef struct xcb_shm_completion_event_t | xcb_shm_completion_event_t
| xcb_shm_completion_event_t
typedef xcb_value_error_t | xcb_shm_bad_seg_error_t
typedef struct xcb_shm_query_version_cookie_t | xcb_shm_query_version_cookie_t
| xcb_shm_query_version_cookie_t
typedef struct xcb_shm_query_version_request_t | xcb_shm_query_version_request_t
| xcb_shm_query_version_request_t
typedef struct xcb_shm_query_version_reply_t | xcb_shm_query_version_reply_t
| xcb_shm_query_version_reply_t
typedef struct xcb_shm_attach_request_t | xcb_shm_attach_request_t
| xcb_shm_attach_request_t
typedef struct xcb_shm_detach_request_t | xcb_shm_detach_request_t
| xcb_shm_detach_request_t
typedef struct xcb_shm_put_image_request_t | xcb_shm_put_image_request_t
| xcb_shm_put_image_request_t
typedef struct xcb_shm_get_image_cookie_t | xcb_shm_get_image_cookie_t
| xcb_shm_get_image_cookie_t
typedef struct xcb_shm_get_image_request_t | xcb_shm_get_image_request_t
| xcb_shm_get_image_request_t
typedef struct xcb_shm_get_image_reply_t | xcb_shm_get_image_reply_t
| xcb_shm_get_image_reply_t
typedef struct xcb_shm_create_pixmap_request_t | xcb_shm_create_pixmap_request_t
| xcb_shm_create_pixmap_request_t
typedef struct xcb_shm_attach_fd_request_t | xcb_shm_attach_fd_request_t
| xcb_shm_attach_fd_request_t
typedef struct xcb_shm_create_segment_cookie_t | xcb_shm_create_segment_cookie_t
| xcb_shm_create_segment_cookie_t
typedef struct xcb_shm_create_segment_request_t | xcb_shm_create_segment_request_t
| xcb_shm_create_segment_request_t
typedef struct xcb_shm_create_segment_reply_t | xcb_shm_create_segment_reply_t
| xcb_shm_create_segment_reply_t

## Functions
void | xcb_shm_seg_next (xcb_shm_seg_iterator_t *i)
xcb_generic_iterator_t | xcb_shm_seg_end (xcb_shm_seg_iterator_t i)
xcb_shm_query_version_cookie_t | xcb_shm_query_version (xcb_connection_t *c)
| Query the version of the MIT-SHM extension. More...
xcb_shm_query_version_cookie_t | xcb_shm_query_version_unchecked (xcb_connection_t *c)
| Query the version of the MIT-SHM extension. More...
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)
xcb_void_cookie_t | xcb_shm_attach_checked (xcb_connection_t *c, xcb_shm_seg_t shmseg, uint32_t shmid, uint8_t read_only)
| Attach a System V shared memory segment. More...
xcb_void_cookie_t | xcb_shm_attach (xcb_connection_t *c, xcb_shm_seg_t shmseg, uint32_t shmid, uint8_t read_only)
| Attach a System V shared memory segment. More...
xcb_void_cookie_t | xcb_shm_detach_checked (xcb_connection_t *c, xcb_shm_seg_t shmseg)
| Destroys the specified shared memory segment. More...
xcb_void_cookie_t | xcb_shm_detach (xcb_connection_t *c, xcb_shm_seg_t shmseg)
| Destroys the specified shared memory segment. More...
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)
| Copy data from the shared memory to the specified drawable. More...
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)
| Copy data from the shared memory to the specified drawable. More...
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)
| Copies data from the specified drawable to the shared memory segment. More...
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)
| Copies data from the specified drawable to the shared memory segment. More...
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)
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)
| Create a pixmap backed by shared memory. More...
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)
| Create a pixmap backed by shared memory. More...
xcb_void_cookie_t | xcb_shm_attach_fd_checked (xcb_connection_t *c, xcb_shm_seg_t shmseg, int32_t shm_fd, uint8_t read_only)
| Create a shared memory segment. More...
xcb_void_cookie_t | xcb_shm_attach_fd (xcb_connection_t *c, xcb_shm_seg_t shmseg, int32_t shm_fd, uint8_t read_only)
| Create a shared memory segment. More...
xcb_shm_create_segment_cookie_t | xcb_shm_create_segment (xcb_connection_t *c, xcb_shm_seg_t shmseg, uint32_t size, uint8_t read_only)
| Asks the server to allocate a shared memory segment. More...
xcb_shm_create_segment_cookie_t | xcb_shm_create_segment_unchecked (xcb_connection_t *c, xcb_shm_seg_t shmseg, uint32_t size, uint8_t read_only)
| Asks the server to allocate a shared memory segment. More...
xcb_shm_create_segment_reply_t * | xcb_shm_create_segment_reply (xcb_connection_t *c, xcb_shm_create_segment_cookie_t cookie, xcb_generic_error_t **e)
int * | xcb_shm_create_segment_reply_fds (xcb_connection_t *c, xcb_shm_create_segment_reply_t *reply)

## Variables
xcb_extension_t | xcb_shm_id

## Detailed Description

Shm XCB Protocol Implementation.

## Macro Definition Documentation

## ◆ XCB_SHM_ATTACH

#define XCB_SHM_ATTACH 1

Opcode for xcb_shm_attach.

## ◆ XCB_SHM_ATTACH_FD

#define XCB_SHM_ATTACH_FD 6

Opcode for xcb_shm_attach_fd.

## ◆ XCB_SHM_BAD_SEG

#define XCB_SHM_BAD_SEG 0

Opcode for xcb_shm_bad_seg.

## ◆ XCB_SHM_COMPLETION

#define XCB_SHM_COMPLETION 0

Opcode for xcb_shm_completion.

## ◆ XCB_SHM_CREATE_PIXMAP

#define XCB_SHM_CREATE_PIXMAP 5

Opcode for xcb_shm_create_pixmap.

## ◆ XCB_SHM_CREATE_SEGMENT

#define XCB_SHM_CREATE_SEGMENT 7

Opcode for xcb_shm_create_segment.

## ◆ XCB_SHM_DETACH

#define XCB_SHM_DETACH 2

Opcode for xcb_shm_detach.

## ◆ XCB_SHM_GET_IMAGE

#define XCB_SHM_GET_IMAGE 4

Opcode for xcb_shm_get_image.

## ◆ XCB_SHM_PUT_IMAGE

#define XCB_SHM_PUT_IMAGE 3

Opcode for xcb_shm_put_image.

## ◆ XCB_SHM_QUERY_VERSION

#define XCB_SHM_QUERY_VERSION 0

Opcode for xcb_shm_query_version.

## Function Documentation

## ◆ xcb_shm_attach()

xcb_void_cookie_t xcb_shm_attach | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | uint32_t | shmid,
|  | uint8_t | read_only
| ) |  |

Attach a System V shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  shmid | The System V shared memory segment the server should map.
  read_only | True if the segment shall be mapped read only by the X11 server, otherwise false.

Returns
  A cookie

Attach a System V shared memory segment to the server. This will fail unless the server has permission to map the segment. The client may destroy the segment as soon as it receives a XCB_SHM_COMPLETION event with the shmseg value in this request and with the appropriate serial number.

References XCB_SHM_ATTACH.

## ◆ xcb_shm_attach_checked()

xcb_void_cookie_t xcb_shm_attach_checked | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | uint32_t | shmid,
|  | uint8_t | read_only
| ) |  |

Attach a System V shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  shmid | The System V shared memory segment the server should map.
  read_only | True if the segment shall be mapped read only by the X11 server, otherwise false.

Returns
  A cookie

Attach a System V shared memory segment to the server. This will fail unless the server has permission to map the segment. The client may destroy the segment as soon as it receives a XCB_SHM_COMPLETION event with the shmseg value in this request and with the appropriate serial number.

This form can be used only if the request will not cause a reply to be generated. Any returned error will be saved for handling by xcb_request_check().

References XCB_SHM_ATTACH.

## ◆ xcb_shm_attach_fd()

xcb_void_cookie_t xcb_shm_attach_fd | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | int32_t | shm_fd,
|  | uint8_t | read_only
| ) |  |

Create a shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  shm_fd | The file descriptor the server should mmap().
  read_only | True if the segment shall be mapped read only by the X11 server, otherwise false.

Returns
  A cookie

Create a shared memory segment. The file descriptor will be mapped at offset zero, and the size will be obtained using fstat(). A zero size will result in a Value error.

References XCB_SHM_ATTACH_FD.

## ◆ xcb_shm_attach_fd_checked()

xcb_void_cookie_t xcb_shm_attach_fd_checked | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | int32_t | shm_fd,
|  | uint8_t | read_only
| ) |  |

Create a shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  shm_fd | The file descriptor the server should mmap().
  read_only | True if the segment shall be mapped read only by the X11 server, otherwise false.

Returns
  A cookie

Create a shared memory segment. The file descriptor will be mapped at offset zero, and the size will be obtained using fstat(). A zero size will result in a Value error.

This form can be used only if the request will not cause a reply to be generated. Any returned error will be saved for handling by xcb_request_check().

References XCB_SHM_ATTACH_FD.

## ◆ xcb_shm_create_pixmap()

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
| ) |  |

Create a pixmap backed by shared memory.

Parameters

  c | The connection
  pid | A pixmap ID created with xcb_generate_id().
  drawable | The drawable to create the pixmap in.
  width | The width of the pixmap to create. Must be nonzero, or a Value error results.
  height | The height of the pixmap to create. Must be nonzero, or a Value error results.
  depth | The depth of the pixmap to create. Must be nonzero, or a Value error results.
  shmseg | The shared memory segment to use to create the pixmap.
  offset | The offset in the segment to create the pixmap at.

Returns
  A cookie

Create a pixmap backed by shared memory. Writes to the shared memory will be reflected in the contents of the pixmap, and writes to the pixmap will be reflected in the contents of the shared memory.

References XCB_SHM_CREATE_PIXMAP.

## ◆ xcb_shm_create_pixmap_checked()

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
| ) |  |

Create a pixmap backed by shared memory.

Parameters

  c | The connection
  pid | A pixmap ID created with xcb_generate_id().
  drawable | The drawable to create the pixmap in.
  width | The width of the pixmap to create. Must be nonzero, or a Value error results.
  height | The height of the pixmap to create. Must be nonzero, or a Value error results.
  depth | The depth of the pixmap to create. Must be nonzero, or a Value error results.
  shmseg | The shared memory segment to use to create the pixmap.
  offset | The offset in the segment to create the pixmap at.

Returns
  A cookie

Create a pixmap backed by shared memory. Writes to the shared memory will be reflected in the contents of the pixmap, and writes to the pixmap will be reflected in the contents of the shared memory.

This form can be used only if the request will not cause a reply to be generated. Any returned error will be saved for handling by xcb_request_check().

References XCB_SHM_CREATE_PIXMAP.

## ◆ xcb_shm_create_segment()

xcb_shm_create_segment_cookie_t xcb_shm_create_segment | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | uint32_t | size,
|  | uint8_t | read_only
| ) |  |

Asks the server to allocate a shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  size | The size of the segment to create.
  read_only | True if the server should map the segment read-only; otherwise false.

Returns
  A cookie

Asks the server to allocate a shared memory segment. The server’s reply will include a file descriptor for the client to pass to mmap().

References XCB_SHM_CREATE_SEGMENT.

## ◆ xcb_shm_create_segment_reply()

xcb_shm_create_segment_reply_t * xcb_shm_create_segment_reply | ( | xcb_connection_t * | c,
|  | xcb_shm_create_segment_cookie_t | cookie,
|  | xcb_generic_error_t ** | e
| ) |  |

Return the reply

Parameters

  c | The connection
  cookie | The cookie
  e | The xcb_generic_error_t supplied

Returns the reply of the request asked by

The parameter `e` supplied to this function must be NULL if xcb_shm_create_segment_unchecked(). is used. Otherwise, it stores the error if any.

The returned value must be freed by the caller using free().

## ◆ xcb_shm_create_segment_reply_fds()

int * xcb_shm_create_segment_reply_fds | ( | xcb_connection_t * | c,
|  | xcb_shm_create_segment_reply_t * | reply
| ) |  |

Return the reply fds

Parameters

  c | The connection
  reply | The reply

Returns a pointer to the array of reply fds of the reply.

The returned value points into the reply and must not be free(). The fds are not managed by xcb. You must close() them before freeing the reply.

## ◆ xcb_shm_create_segment_unchecked()

xcb_shm_create_segment_cookie_t xcb_shm_create_segment_unchecked | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg,
|  | uint32_t | size,
|  | uint8_t | read_only
| ) |  |

Asks the server to allocate a shared memory segment.

Parameters

  c | The connection
  shmseg | A shared memory segment ID created with xcb_generate_id().
  size | The size of the segment to create.
  read_only | True if the server should map the segment read-only; otherwise false.

Returns
  A cookie

Asks the server to allocate a shared memory segment. The server’s reply will include a file descriptor for the client to pass to mmap().

This form can be used only if the request will cause a reply to be generated. Any returned error will be placed in the event queue.

References XCB_SHM_CREATE_SEGMENT.

## ◆ xcb_shm_detach()

xcb_void_cookie_t xcb_shm_detach | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg
| ) |  |

Destroys the specified shared memory segment.

Parameters

  c | The connection
  shmseg | The segment to be destroyed.

Returns
  A cookie

Destroys the specified shared memory segment. This will never fail unless the segment number is incorrect.

References XCB_SHM_DETACH.

## ◆ xcb_shm_detach_checked()

xcb_void_cookie_t xcb_shm_detach_checked | ( | xcb_connection_t * | c,
|  | xcb_shm_seg_t | shmseg
| ) |  |

Destroys the specified shared memory segment.

Parameters

  c | The connection
  shmseg | The segment to be destroyed.

Returns
  A cookie

Destroys the specified shared memory segment. This will never fail unless the segment number is incorrect.

This form can be used only if the request will not cause a reply to be generated. Any returned error will be saved for handling by xcb_request_check().

References XCB_SHM_DETACH.

## ◆ xcb_shm_get_image()

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
| ) |  |

Copies data from the specified drawable to the shared memory segment.

Parameters

  c | The connection
  drawable | The drawable to copy the image out of.
  x | The X coordinate in the drawable to begin copying at.
  y | The Y coordinate in the drawable to begin copying at.
  width | The width of the image to copy.
  height | The height of the image to copy.
  plane_mask | A mask that determines which planes are used.
  format | The format to use for the copy (???).
  shmseg | The destination shared memory segment.
  offset | The offset in the shared memory segment to copy data to.

Returns
  A cookie

Copy data from the specified drawable to the shared memory segment. The amount of bytes written to the destination image is always equal to the number of bytes read from the shared memory segment.

References XCB_SHM_GET_IMAGE.

## ◆ xcb_shm_get_image_reply()

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 the reply

Parameters

  c | The connection
  cookie | The cookie
  e | The xcb_generic_error_t supplied

Returns the reply of the request asked by

The parameter `e` supplied to this function must be NULL if xcb_shm_get_image_unchecked(). is used. Otherwise, it stores the error if any.

The returned value must be freed by the caller using free().

## ◆ xcb_shm_get_image_unchecked()

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
| ) |  |

Copies data from the specified drawable to the shared memory segment.

Parameters

  c | The connection
  drawable | The drawable to copy the image out of.
  x | The X coordinate in the drawable to begin copying at.
  y | The Y coordinate in the drawable to begin copying at.
  width | The width of the image to copy.
  height | The height of the image to copy.
  plane_mask | A mask that determines which planes are used.
  format | The format to use for the copy (???).
  shmseg | The destination shared memory segment.
  offset | The offset in the shared memory segment to copy data to.

Returns
  A cookie

Copy data from the specified drawable to the shared memory segment. The amount of bytes written to the destination image is always equal to the number of bytes read from the shared memory segment.

This form can be used only if the request will cause a reply to be generated. Any returned error will be placed in the event queue.

References XCB_SHM_GET_IMAGE.

## ◆ xcb_shm_put_image()

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
| ) |  |

Copy data from the shared memory to the specified drawable.

Parameters

  c | The connection
  drawable | The drawable to draw to.
  gc | The graphics context to use.
  total_width | The total width of the source image.
  total_height | The total height of the source image.
  src_x | The source X coordinate of the sub-image to copy.
  src_y | The source Y coordinate of the sub-image to copy.
  src_width | The width, in source image coordinates, of the data to copy from the source. The X server will use this to determine the amount of data to copy. The amount of the destination image that is overwritten is determined automatically.
  src_height | The height, in source image coordinates, of the data to copy from the source. The X server will use this to determine the amount of data to copy. The amount of the destination image that is overwritten is determined automatically.
  dst_x | The X coordinate on the destination drawable to copy to.
  dst_y | The Y coordinate on the destination drawable to copy to.
  depth | The depth to use.
  format | The format of the image being drawn. If it is XYBitmap, depth must be 1, or a "BadMatch" error results. The foreground pixel in the GC determines the source for the one bits in the image, and the background pixel determines the source for the zero bits. For XYPixmap and ZPixmap, the depth must match the depth of the drawable, or a "BadMatch" error results.
  send_event | True if the server should send an XCB_SHM_COMPLETION event when the blit completes.
  offset | The offset that the source image starts at.

Returns
  A cookie

Copy data from the shared memory to the specified drawable. The amount of bytes written to the destination image is always equal to the number of bytes read from the shared memory segment.

References XCB_SHM_PUT_IMAGE.

## ◆ xcb_shm_put_image_checked()

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
| ) |  |

Copy data from the shared memory to the specified drawable.

Parameters

  c | The connection
  drawable | The drawable to draw to.
  gc | The graphics context to use.
  total_width | The total width of the source image.
  total_height | The total height of the source image.
  src_x | The source X coordinate of the sub-image to copy.
  src_y | The source Y coordinate of the sub-image to copy.
  src_width | The width, in source image coordinates, of the data to copy from the source. The X server will use this to determine the amount of data to copy. The amount of the destination image that is overwritten is determined automatically.
  src_height | The height, in source image coordinates, of the data to copy from the source. The X server will use this to determine the amount of data to copy. The amount of the destination image that is overwritten is determined automatically.
  dst_x | The X coordinate on the destination drawable to copy to.
  dst_y | The Y coordinate on the destination drawable to copy to.
  depth | The depth to use.
  format | The format of the image being drawn. If it is XYBitmap, depth must be 1, or a "BadMatch" error results. The foreground pixel in the GC determines the source for the one bits in the image, and the background pixel determines the source for the zero bits. For XYPixmap and ZPixmap, the depth must match the depth of the drawable, or a "BadMatch" error results.
  send_event | True if the server should send an XCB_SHM_COMPLETION event when the blit completes.
  offset | The offset that the source image starts at.

Returns
  A cookie

Copy data from the shared memory to the specified drawable. The amount of bytes written to the destination image is always equal to the number of bytes read from the shared memory segment.

This form can be used only if the request will not cause a reply to be generated. Any returned error will be saved for handling by xcb_request_check().

References XCB_SHM_PUT_IMAGE.

## ◆ xcb_shm_query_version()

xcb_shm_query_version_cookie_t xcb_shm_query_version | ( | xcb_connection_t * | c | ) |

Query the version of the MIT-SHM extension.

Parameters

  c | The connection

Returns
  A cookie

This is used to determine the version of the MIT-SHM extension supported by the X server. Clients MUST NOT make other requests in this extension until a reply to this requests indicates the X server supports them.

References XCB_SHM_QUERY_VERSION.

## ◆ xcb_shm_query_version_reply()

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 the reply

Parameters

  c | The connection
  cookie | The cookie
  e | The xcb_generic_error_t supplied

Returns the reply of the request asked by

The parameter `e` supplied to this function must be NULL if xcb_shm_query_version_unchecked(). is used. Otherwise, it stores the error if any.

The returned value must be freed by the caller using free().

## ◆ xcb_shm_query_version_unchecked()

xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked | ( | xcb_connection_t * | c | ) |

Query the version of the MIT-SHM extension.

Parameters

  c | The connection

Returns
  A cookie

This is used to determine the version of the MIT-SHM extension supported by the X server. Clients MUST NOT make other requests in this extension until a reply to this requests indicates the X server supports them.

This form can be used only if the request will cause a reply to be generated. Any returned error will be placed in the event queue.

References XCB_SHM_QUERY_VERSION.

## ◆ xcb_shm_seg_end()

xcb_generic_iterator_t xcb_shm_seg_end | ( | xcb_shm_seg_iterator_t | i | ) |

Return the iterator pointing to the last element

Parameters

  i | An xcb_shm_seg_iterator_t

Returns
  The iterator pointing to the last element

Set the current element in the iterator to the last element. The member rem is set to 0. The member data points to the last element.

References xcb_generic_iterator_t::data, xcb_generic_iterator_t::index, and xcb_generic_iterator_t::rem.

## ◆ xcb_shm_seg_next()

void xcb_shm_seg_next | ( | xcb_shm_seg_iterator_t * | i | ) |

Get the next element of the iterator

Parameters

  i | Pointer to a xcb_shm_seg_iterator_t

Get the next element in the iterator. The member rem is decreased by one. The member data points to the next element. The member index is increased by sizeof(xcb_shm_seg_t)