jpayne@69: /* jpayne@69: * This file generated automatically from shm.xml by c_client.py. jpayne@69: * Edit at your peril. jpayne@69: */ jpayne@69: jpayne@69: /** jpayne@69: * @defgroup XCB_Shm_API XCB Shm API jpayne@69: * @brief Shm XCB Protocol Implementation. jpayne@69: * @{ jpayne@69: **/ jpayne@69: jpayne@69: #ifndef __SHM_H jpayne@69: #define __SHM_H jpayne@69: jpayne@69: #include "xcb.h" jpayne@69: #include "xproto.h" jpayne@69: jpayne@69: #ifdef __cplusplus jpayne@69: extern "C" { jpayne@69: #endif jpayne@69: jpayne@69: #define XCB_SHM_MAJOR_VERSION 1 jpayne@69: #define XCB_SHM_MINOR_VERSION 2 jpayne@69: jpayne@69: extern xcb_extension_t xcb_shm_id; jpayne@69: jpayne@69: typedef uint32_t xcb_shm_seg_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_seg_iterator_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_seg_iterator_t { jpayne@69: xcb_shm_seg_t *data; jpayne@69: int rem; jpayne@69: int index; jpayne@69: } xcb_shm_seg_iterator_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_completion. */ jpayne@69: #define XCB_SHM_COMPLETION 0 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_completion_event_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_completion_event_t { jpayne@69: uint8_t response_type; jpayne@69: uint8_t pad0; jpayne@69: uint16_t sequence; jpayne@69: xcb_drawable_t drawable; jpayne@69: uint16_t minor_event; jpayne@69: uint8_t major_event; jpayne@69: uint8_t pad1; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t offset; jpayne@69: } xcb_shm_completion_event_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_bad_seg. */ jpayne@69: #define XCB_SHM_BAD_SEG 0 jpayne@69: jpayne@69: typedef xcb_value_error_t xcb_shm_bad_seg_error_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_query_version_cookie_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_query_version_cookie_t { jpayne@69: unsigned int sequence; jpayne@69: } xcb_shm_query_version_cookie_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_query_version. */ jpayne@69: #define XCB_SHM_QUERY_VERSION 0 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_query_version_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_query_version_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: } xcb_shm_query_version_request_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_query_version_reply_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_query_version_reply_t { jpayne@69: uint8_t response_type; jpayne@69: uint8_t shared_pixmaps; jpayne@69: uint16_t sequence; jpayne@69: uint32_t length; jpayne@69: uint16_t major_version; jpayne@69: uint16_t minor_version; jpayne@69: uint16_t uid; jpayne@69: uint16_t gid; jpayne@69: uint8_t pixmap_format; jpayne@69: uint8_t pad0[15]; jpayne@69: } xcb_shm_query_version_reply_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_attach. */ jpayne@69: #define XCB_SHM_ATTACH 1 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_attach_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_attach_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t shmid; jpayne@69: uint8_t read_only; jpayne@69: uint8_t pad0[3]; jpayne@69: } xcb_shm_attach_request_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_detach. */ jpayne@69: #define XCB_SHM_DETACH 2 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_detach_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_detach_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: } xcb_shm_detach_request_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_put_image. */ jpayne@69: #define XCB_SHM_PUT_IMAGE 3 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_put_image_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_put_image_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_drawable_t drawable; jpayne@69: xcb_gcontext_t gc; jpayne@69: uint16_t total_width; jpayne@69: uint16_t total_height; jpayne@69: uint16_t src_x; jpayne@69: uint16_t src_y; jpayne@69: uint16_t src_width; jpayne@69: uint16_t src_height; jpayne@69: int16_t dst_x; jpayne@69: int16_t dst_y; jpayne@69: uint8_t depth; jpayne@69: uint8_t format; jpayne@69: uint8_t send_event; jpayne@69: uint8_t pad0; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t offset; jpayne@69: } xcb_shm_put_image_request_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_get_image_cookie_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_get_image_cookie_t { jpayne@69: unsigned int sequence; jpayne@69: } xcb_shm_get_image_cookie_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_get_image. */ jpayne@69: #define XCB_SHM_GET_IMAGE 4 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_get_image_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_get_image_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_drawable_t drawable; jpayne@69: int16_t x; jpayne@69: int16_t y; jpayne@69: uint16_t width; jpayne@69: uint16_t height; jpayne@69: uint32_t plane_mask; jpayne@69: uint8_t format; jpayne@69: uint8_t pad0[3]; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t offset; jpayne@69: } xcb_shm_get_image_request_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_get_image_reply_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_get_image_reply_t { jpayne@69: uint8_t response_type; jpayne@69: uint8_t depth; jpayne@69: uint16_t sequence; jpayne@69: uint32_t length; jpayne@69: xcb_visualid_t visual; jpayne@69: uint32_t size; jpayne@69: } xcb_shm_get_image_reply_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_create_pixmap. */ jpayne@69: #define XCB_SHM_CREATE_PIXMAP 5 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_create_pixmap_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_create_pixmap_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_pixmap_t pid; jpayne@69: xcb_drawable_t drawable; jpayne@69: uint16_t width; jpayne@69: uint16_t height; jpayne@69: uint8_t depth; jpayne@69: uint8_t pad0[3]; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t offset; jpayne@69: } xcb_shm_create_pixmap_request_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_attach_fd. */ jpayne@69: #define XCB_SHM_ATTACH_FD 6 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_attach_fd_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_attach_fd_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint8_t read_only; jpayne@69: uint8_t pad0[3]; jpayne@69: } xcb_shm_attach_fd_request_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_create_segment_cookie_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_create_segment_cookie_t { jpayne@69: unsigned int sequence; jpayne@69: } xcb_shm_create_segment_cookie_t; jpayne@69: jpayne@69: /** Opcode for xcb_shm_create_segment. */ jpayne@69: #define XCB_SHM_CREATE_SEGMENT 7 jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_create_segment_request_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_create_segment_request_t { jpayne@69: uint8_t major_opcode; jpayne@69: uint8_t minor_opcode; jpayne@69: uint16_t length; jpayne@69: xcb_shm_seg_t shmseg; jpayne@69: uint32_t size; jpayne@69: uint8_t read_only; jpayne@69: uint8_t pad0[3]; jpayne@69: } xcb_shm_create_segment_request_t; jpayne@69: jpayne@69: /** jpayne@69: * @brief xcb_shm_create_segment_reply_t jpayne@69: **/ jpayne@69: typedef struct xcb_shm_create_segment_reply_t { jpayne@69: uint8_t response_type; jpayne@69: uint8_t nfd; jpayne@69: uint16_t sequence; jpayne@69: uint32_t length; jpayne@69: uint8_t pad0[24]; jpayne@69: } xcb_shm_create_segment_reply_t; jpayne@69: jpayne@69: /** jpayne@69: * Get the next element of the iterator jpayne@69: * @param i Pointer to a xcb_shm_seg_iterator_t jpayne@69: * jpayne@69: * Get the next element in the iterator. The member rem is jpayne@69: * decreased by one. The member data points to the next jpayne@69: * element. The member index is increased by sizeof(xcb_shm_seg_t) jpayne@69: */ jpayne@69: void jpayne@69: xcb_shm_seg_next (xcb_shm_seg_iterator_t *i); jpayne@69: jpayne@69: /** jpayne@69: * Return the iterator pointing to the last element jpayne@69: * @param i An xcb_shm_seg_iterator_t jpayne@69: * @return The iterator pointing to the last element jpayne@69: * jpayne@69: * Set the current element in the iterator to the last element. jpayne@69: * The member rem is set to 0. The member data points to the jpayne@69: * last element. jpayne@69: */ jpayne@69: xcb_generic_iterator_t jpayne@69: xcb_shm_seg_end (xcb_shm_seg_iterator_t i); jpayne@69: jpayne@69: /** jpayne@69: * @brief Query the version of the MIT-SHM extension. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * This is used to determine the version of the MIT-SHM extension supported by the jpayne@69: * X server. Clients MUST NOT make other requests in this extension until a reply jpayne@69: * to this requests indicates the X server supports them. jpayne@69: * jpayne@69: */ jpayne@69: xcb_shm_query_version_cookie_t jpayne@69: xcb_shm_query_version (xcb_connection_t *c); jpayne@69: jpayne@69: /** jpayne@69: * @brief Query the version of the MIT-SHM extension. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * This is used to determine the version of the MIT-SHM extension supported by the jpayne@69: * X server. Clients MUST NOT make other requests in this extension until a reply jpayne@69: * to this requests indicates the X server supports them. jpayne@69: * jpayne@69: * This form can be used only if the request will cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * placed in the event queue. jpayne@69: */ jpayne@69: xcb_shm_query_version_cookie_t jpayne@69: xcb_shm_query_version_unchecked (xcb_connection_t *c); jpayne@69: jpayne@69: /** jpayne@69: * Return the reply jpayne@69: * @param c The connection jpayne@69: * @param cookie The cookie jpayne@69: * @param e The xcb_generic_error_t supplied jpayne@69: * jpayne@69: * Returns the reply of the request asked by jpayne@69: * jpayne@69: * The parameter @p e supplied to this function must be NULL if jpayne@69: * xcb_shm_query_version_unchecked(). is used. jpayne@69: * Otherwise, it stores the error if any. jpayne@69: * jpayne@69: * The returned value must be freed by the caller using free(). jpayne@69: */ jpayne@69: xcb_shm_query_version_reply_t * jpayne@69: xcb_shm_query_version_reply (xcb_connection_t *c, jpayne@69: xcb_shm_query_version_cookie_t cookie /**< */, jpayne@69: xcb_generic_error_t **e); jpayne@69: jpayne@69: /** jpayne@69: * @brief Attach a System V shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param shmid The System V shared memory segment the server should map. jpayne@69: * @param read_only True if the segment shall be mapped read only by the X11 server, otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Attach a System V shared memory segment to the server. This will fail unless jpayne@69: * the server has permission to map the segment. The client may destroy the segment jpayne@69: * as soon as it receives a XCB_SHM_COMPLETION event with the shmseg value in this jpayne@69: * request and with the appropriate serial number. jpayne@69: * jpayne@69: * This form can be used only if the request will not cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * saved for handling by xcb_request_check(). jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_attach_checked (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t shmid, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * @brief Attach a System V shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param shmid The System V shared memory segment the server should map. jpayne@69: * @param read_only True if the segment shall be mapped read only by the X11 server, otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Attach a System V shared memory segment to the server. This will fail unless jpayne@69: * the server has permission to map the segment. The client may destroy the segment jpayne@69: * as soon as it receives a XCB_SHM_COMPLETION event with the shmseg value in this jpayne@69: * request and with the appropriate serial number. jpayne@69: * jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_attach (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t shmid, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * @brief Destroys the specified shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg The segment to be destroyed. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Destroys the specified shared memory segment. This will never fail unless the jpayne@69: * segment number is incorrect. jpayne@69: * jpayne@69: * This form can be used only if the request will not cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * saved for handling by xcb_request_check(). jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_detach_checked (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg); jpayne@69: jpayne@69: /** jpayne@69: * @brief Destroys the specified shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg The segment to be destroyed. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Destroys the specified shared memory segment. This will never fail unless the jpayne@69: * segment number is incorrect. jpayne@69: * jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_detach (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg); jpayne@69: jpayne@69: /** jpayne@69: * @brief Copy data from the shared memory to the specified drawable. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param drawable The drawable to draw to. jpayne@69: * @param gc The graphics context to use. jpayne@69: * @param total_width The total width of the source image. jpayne@69: * @param total_height The total height of the source image. jpayne@69: * @param src_x The source X coordinate of the sub-image to copy. jpayne@69: * @param src_y The source Y coordinate of the sub-image to copy. jpayne@69: * @param src_width The width, in source image coordinates, of the data to copy from the source. jpayne@69: * The X server will use this to determine the amount of data to copy. The amount jpayne@69: * of the destination image that is overwritten is determined automatically. jpayne@69: * @param src_height The height, in source image coordinates, of the data to copy from the source. jpayne@69: * The X server will use this to determine the amount of data to copy. The amount jpayne@69: * of the destination image that is overwritten is determined automatically. jpayne@69: * @param dst_x The X coordinate on the destination drawable to copy to. jpayne@69: * @param dst_y The Y coordinate on the destination drawable to copy to. jpayne@69: * @param depth The depth to use. jpayne@69: * @param format The format of the image being drawn. If it is XYBitmap, depth must be 1, or a jpayne@69: * "BadMatch" error results. The foreground pixel in the GC determines the source jpayne@69: * for the one bits in the image, and the background pixel determines the source jpayne@69: * for the zero bits. For XYPixmap and ZPixmap, the depth must match the depth of jpayne@69: * the drawable, or a "BadMatch" error results. jpayne@69: * @param send_event True if the server should send an XCB_SHM_COMPLETION event when the blit jpayne@69: * completes. jpayne@69: * @param offset The offset that the source image starts at. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Copy data from the shared memory to the specified drawable. The amount of bytes jpayne@69: * written to the destination image is always equal to the number of bytes read jpayne@69: * from the shared memory segment. jpayne@69: * jpayne@69: * This form can be used only if the request will not cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * saved for handling by xcb_request_check(). jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_put_image_checked (xcb_connection_t *c, jpayne@69: xcb_drawable_t drawable, jpayne@69: xcb_gcontext_t gc, jpayne@69: uint16_t total_width, jpayne@69: uint16_t total_height, jpayne@69: uint16_t src_x, jpayne@69: uint16_t src_y, jpayne@69: uint16_t src_width, jpayne@69: uint16_t src_height, jpayne@69: int16_t dst_x, jpayne@69: int16_t dst_y, jpayne@69: uint8_t depth, jpayne@69: uint8_t format, jpayne@69: uint8_t send_event, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * @brief Copy data from the shared memory to the specified drawable. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param drawable The drawable to draw to. jpayne@69: * @param gc The graphics context to use. jpayne@69: * @param total_width The total width of the source image. jpayne@69: * @param total_height The total height of the source image. jpayne@69: * @param src_x The source X coordinate of the sub-image to copy. jpayne@69: * @param src_y The source Y coordinate of the sub-image to copy. jpayne@69: * @param src_width The width, in source image coordinates, of the data to copy from the source. jpayne@69: * The X server will use this to determine the amount of data to copy. The amount jpayne@69: * of the destination image that is overwritten is determined automatically. jpayne@69: * @param src_height The height, in source image coordinates, of the data to copy from the source. jpayne@69: * The X server will use this to determine the amount of data to copy. The amount jpayne@69: * of the destination image that is overwritten is determined automatically. jpayne@69: * @param dst_x The X coordinate on the destination drawable to copy to. jpayne@69: * @param dst_y The Y coordinate on the destination drawable to copy to. jpayne@69: * @param depth The depth to use. jpayne@69: * @param format The format of the image being drawn. If it is XYBitmap, depth must be 1, or a jpayne@69: * "BadMatch" error results. The foreground pixel in the GC determines the source jpayne@69: * for the one bits in the image, and the background pixel determines the source jpayne@69: * for the zero bits. For XYPixmap and ZPixmap, the depth must match the depth of jpayne@69: * the drawable, or a "BadMatch" error results. jpayne@69: * @param send_event True if the server should send an XCB_SHM_COMPLETION event when the blit jpayne@69: * completes. jpayne@69: * @param offset The offset that the source image starts at. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Copy data from the shared memory to the specified drawable. The amount of bytes jpayne@69: * written to the destination image is always equal to the number of bytes read jpayne@69: * from the shared memory segment. jpayne@69: * jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_put_image (xcb_connection_t *c, jpayne@69: xcb_drawable_t drawable, jpayne@69: xcb_gcontext_t gc, jpayne@69: uint16_t total_width, jpayne@69: uint16_t total_height, jpayne@69: uint16_t src_x, jpayne@69: uint16_t src_y, jpayne@69: uint16_t src_width, jpayne@69: uint16_t src_height, jpayne@69: int16_t dst_x, jpayne@69: int16_t dst_y, jpayne@69: uint8_t depth, jpayne@69: uint8_t format, jpayne@69: uint8_t send_event, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * @brief Copies data from the specified drawable to the shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param drawable The drawable to copy the image out of. jpayne@69: * @param x The X coordinate in the drawable to begin copying at. jpayne@69: * @param y The Y coordinate in the drawable to begin copying at. jpayne@69: * @param width The width of the image to copy. jpayne@69: * @param height The height of the image to copy. jpayne@69: * @param plane_mask A mask that determines which planes are used. jpayne@69: * @param format The format to use for the copy (???). jpayne@69: * @param shmseg The destination shared memory segment. jpayne@69: * @param offset The offset in the shared memory segment to copy data to. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Copy data from the specified drawable to the shared memory segment. The amount jpayne@69: * of bytes written to the destination image is always equal to the number of bytes jpayne@69: * read from the shared memory segment. jpayne@69: * jpayne@69: */ jpayne@69: xcb_shm_get_image_cookie_t jpayne@69: xcb_shm_get_image (xcb_connection_t *c, jpayne@69: xcb_drawable_t drawable, jpayne@69: int16_t x, jpayne@69: int16_t y, jpayne@69: uint16_t width, jpayne@69: uint16_t height, jpayne@69: uint32_t plane_mask, jpayne@69: uint8_t format, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * @brief Copies data from the specified drawable to the shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param drawable The drawable to copy the image out of. jpayne@69: * @param x The X coordinate in the drawable to begin copying at. jpayne@69: * @param y The Y coordinate in the drawable to begin copying at. jpayne@69: * @param width The width of the image to copy. jpayne@69: * @param height The height of the image to copy. jpayne@69: * @param plane_mask A mask that determines which planes are used. jpayne@69: * @param format The format to use for the copy (???). jpayne@69: * @param shmseg The destination shared memory segment. jpayne@69: * @param offset The offset in the shared memory segment to copy data to. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Copy data from the specified drawable to the shared memory segment. The amount jpayne@69: * of bytes written to the destination image is always equal to the number of bytes jpayne@69: * read from the shared memory segment. jpayne@69: * jpayne@69: * This form can be used only if the request will cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * placed in the event queue. jpayne@69: */ jpayne@69: xcb_shm_get_image_cookie_t jpayne@69: xcb_shm_get_image_unchecked (xcb_connection_t *c, jpayne@69: xcb_drawable_t drawable, jpayne@69: int16_t x, jpayne@69: int16_t y, jpayne@69: uint16_t width, jpayne@69: uint16_t height, jpayne@69: uint32_t plane_mask, jpayne@69: uint8_t format, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * Return the reply jpayne@69: * @param c The connection jpayne@69: * @param cookie The cookie jpayne@69: * @param e The xcb_generic_error_t supplied jpayne@69: * jpayne@69: * Returns the reply of the request asked by jpayne@69: * jpayne@69: * The parameter @p e supplied to this function must be NULL if jpayne@69: * xcb_shm_get_image_unchecked(). is used. jpayne@69: * Otherwise, it stores the error if any. jpayne@69: * jpayne@69: * The returned value must be freed by the caller using free(). jpayne@69: */ jpayne@69: xcb_shm_get_image_reply_t * jpayne@69: xcb_shm_get_image_reply (xcb_connection_t *c, jpayne@69: xcb_shm_get_image_cookie_t cookie /**< */, jpayne@69: xcb_generic_error_t **e); jpayne@69: jpayne@69: /** jpayne@69: * @brief Create a pixmap backed by shared memory. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param pid A pixmap ID created with xcb_generate_id(). jpayne@69: * @param drawable The drawable to create the pixmap in. jpayne@69: * @param width The width of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param height The height of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param depth The depth of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param shmseg The shared memory segment to use to create the pixmap. jpayne@69: * @param offset The offset in the segment to create the pixmap at. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Create a pixmap backed by shared memory. Writes to the shared memory will be jpayne@69: * reflected in the contents of the pixmap, and writes to the pixmap will be jpayne@69: * reflected in the contents of the shared memory. jpayne@69: * jpayne@69: * This form can be used only if the request will not cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * saved for handling by xcb_request_check(). jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_create_pixmap_checked (xcb_connection_t *c, jpayne@69: xcb_pixmap_t pid, jpayne@69: xcb_drawable_t drawable, jpayne@69: uint16_t width, jpayne@69: uint16_t height, jpayne@69: uint8_t depth, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * @brief Create a pixmap backed by shared memory. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param pid A pixmap ID created with xcb_generate_id(). jpayne@69: * @param drawable The drawable to create the pixmap in. jpayne@69: * @param width The width of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param height The height of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param depth The depth of the pixmap to create. Must be nonzero, or a Value error results. jpayne@69: * @param shmseg The shared memory segment to use to create the pixmap. jpayne@69: * @param offset The offset in the segment to create the pixmap at. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Create a pixmap backed by shared memory. Writes to the shared memory will be jpayne@69: * reflected in the contents of the pixmap, and writes to the pixmap will be jpayne@69: * reflected in the contents of the shared memory. jpayne@69: * jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_create_pixmap (xcb_connection_t *c, jpayne@69: xcb_pixmap_t pid, jpayne@69: xcb_drawable_t drawable, jpayne@69: uint16_t width, jpayne@69: uint16_t height, jpayne@69: uint8_t depth, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t offset); jpayne@69: jpayne@69: /** jpayne@69: * @brief Create a shared memory segment jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param shm_fd The file descriptor the server should mmap(). jpayne@69: * @param read_only True if the segment shall be mapped read only by the X11 server, otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Create a shared memory segment. The file descriptor will be mapped at offset jpayne@69: * zero, and the size will be obtained using fstat(). A zero size will result in a jpayne@69: * Value error. jpayne@69: * jpayne@69: * This form can be used only if the request will not cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * saved for handling by xcb_request_check(). jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_attach_fd_checked (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: int32_t shm_fd, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * @brief Create a shared memory segment jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param shm_fd The file descriptor the server should mmap(). jpayne@69: * @param read_only True if the segment shall be mapped read only by the X11 server, otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Create a shared memory segment. The file descriptor will be mapped at offset jpayne@69: * zero, and the size will be obtained using fstat(). A zero size will result in a jpayne@69: * Value error. jpayne@69: * jpayne@69: */ jpayne@69: xcb_void_cookie_t jpayne@69: xcb_shm_attach_fd (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: int32_t shm_fd, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * @brief Asks the server to allocate a shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param size The size of the segment to create. jpayne@69: * @param read_only True if the server should map the segment read-only; otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Asks the server to allocate a shared memory segment. The server’s reply will jpayne@69: * include a file descriptor for the client to pass to mmap(). jpayne@69: * jpayne@69: */ jpayne@69: xcb_shm_create_segment_cookie_t jpayne@69: xcb_shm_create_segment (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t size, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * @brief Asks the server to allocate a shared memory segment. jpayne@69: * jpayne@69: * @param c The connection jpayne@69: * @param shmseg A shared memory segment ID created with xcb_generate_id(). jpayne@69: * @param size The size of the segment to create. jpayne@69: * @param read_only True if the server should map the segment read-only; otherwise false. jpayne@69: * @return A cookie jpayne@69: * jpayne@69: * Asks the server to allocate a shared memory segment. The server’s reply will jpayne@69: * include a file descriptor for the client to pass to mmap(). jpayne@69: * jpayne@69: * This form can be used only if the request will cause jpayne@69: * a reply to be generated. Any returned error will be jpayne@69: * placed in the event queue. jpayne@69: */ jpayne@69: xcb_shm_create_segment_cookie_t jpayne@69: xcb_shm_create_segment_unchecked (xcb_connection_t *c, jpayne@69: xcb_shm_seg_t shmseg, jpayne@69: uint32_t size, jpayne@69: uint8_t read_only); jpayne@69: jpayne@69: /** jpayne@69: * Return the reply jpayne@69: * @param c The connection jpayne@69: * @param cookie The cookie jpayne@69: * @param e The xcb_generic_error_t supplied jpayne@69: * jpayne@69: * Returns the reply of the request asked by jpayne@69: * jpayne@69: * The parameter @p e supplied to this function must be NULL if jpayne@69: * xcb_shm_create_segment_unchecked(). is used. jpayne@69: * Otherwise, it stores the error if any. jpayne@69: * jpayne@69: * The returned value must be freed by the caller using free(). jpayne@69: */ jpayne@69: xcb_shm_create_segment_reply_t * jpayne@69: xcb_shm_create_segment_reply (xcb_connection_t *c, jpayne@69: xcb_shm_create_segment_cookie_t cookie /**< */, jpayne@69: xcb_generic_error_t **e); jpayne@69: jpayne@69: /** jpayne@69: * Return the reply fds jpayne@69: * @param c The connection jpayne@69: * @param reply The reply jpayne@69: * jpayne@69: * Returns a pointer to the array of reply fds of the reply. jpayne@69: * jpayne@69: * The returned value points into the reply and must not be free(). jpayne@69: * The fds are not managed by xcb. You must close() them before freeing the reply. jpayne@69: */ jpayne@69: int * jpayne@69: xcb_shm_create_segment_reply_fds (xcb_connection_t *c /**< */, jpayne@69: xcb_shm_create_segment_reply_t *reply); jpayne@69: jpayne@69: jpayne@69: #ifdef __cplusplus jpayne@69: } jpayne@69: #endif jpayne@69: jpayne@69: #endif jpayne@69: jpayne@69: /** jpayne@69: * @} jpayne@69: */