XCB: XCB Shm API

XCB 1.15

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)
xcb_shm_query_version_cookie_t | xcb_shm_query_version_unchecked (xcb_connection_t *c)
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)
xcb_void_cookie_t | xcb_shm_attach (xcb_connection_t *c, xcb_shm_seg_t shmseg, uint32_t shmid, uint8_t read_only)
xcb_void_cookie_t | xcb_shm_detach_checked (xcb_connection_t *c, xcb_shm_seg_t shmseg)
xcb_void_cookie_t | xcb_shm_detach (xcb_connection_t *c, xcb_shm_seg_t shmseg)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
| ) |  |

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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.

## ◆ xcb_shm_detach()

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

## ◆ xcb_shm_detach_checked()

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

## ◆ xcb_shm_query_version()

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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

Parameters

  c | The connection

Returns
  A cookie

Delivers a request to the X server.

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.

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