00001
00002
00003
00004
00005
00012 #ifndef __SHM_H
00013 #define __SHM_H
00014
00015 #include "xcb.h"
00016 #include "xproto.h"
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 #define XCB_SHM_MAJOR_VERSION 1
00023 #define XCB_SHM_MINOR_VERSION 2
00024
00025 extern xcb_extension_t xcb_shm_id;
00026
00027 typedef uint32_t xcb_shm_seg_t;
00028
00032 typedef struct xcb_shm_seg_iterator_t {
00033 xcb_shm_seg_t *data;
00034 int rem;
00035 int index;
00036 } xcb_shm_seg_iterator_t;
00037
00039 #define XCB_SHM_COMPLETION 0
00040
00044 typedef struct xcb_shm_completion_event_t {
00045 uint8_t response_type;
00046 uint8_t pad0;
00047 uint16_t sequence;
00048 xcb_drawable_t drawable;
00049 uint16_t minor_event;
00050 uint8_t major_event;
00051 uint8_t pad1;
00052 xcb_shm_seg_t shmseg;
00053 uint32_t offset;
00054 } xcb_shm_completion_event_t;
00055
00057 #define XCB_SHM_BAD_SEG 0
00058
00059 typedef xcb_value_error_t xcb_shm_bad_seg_error_t;
00060
00064 typedef struct xcb_shm_query_version_cookie_t {
00065 unsigned int sequence;
00066 } xcb_shm_query_version_cookie_t;
00067
00069 #define XCB_SHM_QUERY_VERSION 0
00070
00074 typedef struct xcb_shm_query_version_request_t {
00075 uint8_t major_opcode;
00076 uint8_t minor_opcode;
00077 uint16_t length;
00078 } xcb_shm_query_version_request_t;
00079
00083 typedef struct xcb_shm_query_version_reply_t {
00084 uint8_t response_type;
00085 uint8_t shared_pixmaps;
00086 uint16_t sequence;
00087 uint32_t length;
00088 uint16_t major_version;
00089 uint16_t minor_version;
00090 uint16_t uid;
00091 uint16_t gid;
00092 uint8_t pixmap_format;
00093 uint8_t pad0[15];
00094 } xcb_shm_query_version_reply_t;
00095
00097 #define XCB_SHM_ATTACH 1
00098
00102 typedef struct xcb_shm_attach_request_t {
00103 uint8_t major_opcode;
00104 uint8_t minor_opcode;
00105 uint16_t length;
00106 xcb_shm_seg_t shmseg;
00107 uint32_t shmid;
00108 uint8_t read_only;
00109 uint8_t pad0[3];
00110 } xcb_shm_attach_request_t;
00111
00113 #define XCB_SHM_DETACH 2
00114
00118 typedef struct xcb_shm_detach_request_t {
00119 uint8_t major_opcode;
00120 uint8_t minor_opcode;
00121 uint16_t length;
00122 xcb_shm_seg_t shmseg;
00123 } xcb_shm_detach_request_t;
00124
00126 #define XCB_SHM_PUT_IMAGE 3
00127
00131 typedef struct xcb_shm_put_image_request_t {
00132 uint8_t major_opcode;
00133 uint8_t minor_opcode;
00134 uint16_t length;
00135 xcb_drawable_t drawable;
00136 xcb_gcontext_t gc;
00137 uint16_t total_width;
00138 uint16_t total_height;
00139 uint16_t src_x;
00140 uint16_t src_y;
00141 uint16_t src_width;
00142 uint16_t src_height;
00143 int16_t dst_x;
00144 int16_t dst_y;
00145 uint8_t depth;
00146 uint8_t format;
00147 uint8_t send_event;
00148 uint8_t pad0;
00149 xcb_shm_seg_t shmseg;
00150 uint32_t offset;
00151 } xcb_shm_put_image_request_t;
00152
00156 typedef struct xcb_shm_get_image_cookie_t {
00157 unsigned int sequence;
00158 } xcb_shm_get_image_cookie_t;
00159
00161 #define XCB_SHM_GET_IMAGE 4
00162
00166 typedef struct xcb_shm_get_image_request_t {
00167 uint8_t major_opcode;
00168 uint8_t minor_opcode;
00169 uint16_t length;
00170 xcb_drawable_t drawable;
00171 int16_t x;
00172 int16_t y;
00173 uint16_t width;
00174 uint16_t height;
00175 uint32_t plane_mask;
00176 uint8_t format;
00177 uint8_t pad0[3];
00178 xcb_shm_seg_t shmseg;
00179 uint32_t offset;
00180 } xcb_shm_get_image_request_t;
00181
00185 typedef struct xcb_shm_get_image_reply_t {
00186 uint8_t response_type;
00187 uint8_t depth;
00188 uint16_t sequence;
00189 uint32_t length;
00190 xcb_visualid_t visual;
00191 uint32_t size;
00192 } xcb_shm_get_image_reply_t;
00193
00195 #define XCB_SHM_CREATE_PIXMAP 5
00196
00200 typedef struct xcb_shm_create_pixmap_request_t {
00201 uint8_t major_opcode;
00202 uint8_t minor_opcode;
00203 uint16_t length;
00204 xcb_pixmap_t pid;
00205 xcb_drawable_t drawable;
00206 uint16_t width;
00207 uint16_t height;
00208 uint8_t depth;
00209 uint8_t pad0[3];
00210 xcb_shm_seg_t shmseg;
00211 uint32_t offset;
00212 } xcb_shm_create_pixmap_request_t;
00213
00215 #define XCB_SHM_ATTACH_FD 6
00216
00220 typedef struct xcb_shm_attach_fd_request_t {
00221 uint8_t major_opcode;
00222 uint8_t minor_opcode;
00223 uint16_t length;
00224 xcb_shm_seg_t shmseg;
00225 uint8_t read_only;
00226 uint8_t pad0[3];
00227 } xcb_shm_attach_fd_request_t;
00228
00232 typedef struct xcb_shm_create_segment_cookie_t {
00233 unsigned int sequence;
00234 } xcb_shm_create_segment_cookie_t;
00235
00237 #define XCB_SHM_CREATE_SEGMENT 7
00238
00242 typedef struct xcb_shm_create_segment_request_t {
00243 uint8_t major_opcode;
00244 uint8_t minor_opcode;
00245 uint16_t length;
00246 xcb_shm_seg_t shmseg;
00247 uint32_t size;
00248 uint8_t read_only;
00249 uint8_t pad0[3];
00250 } xcb_shm_create_segment_request_t;
00251
00255 typedef struct xcb_shm_create_segment_reply_t {
00256 uint8_t response_type;
00257 uint8_t nfd;
00258 uint16_t sequence;
00259 uint32_t length;
00260 uint8_t pad0[24];
00261 } xcb_shm_create_segment_reply_t;
00262
00271 void
00272 xcb_shm_seg_next (xcb_shm_seg_iterator_t *i);
00273
00283 xcb_generic_iterator_t
00284 xcb_shm_seg_end (xcb_shm_seg_iterator_t i);
00285
00294 xcb_shm_query_version_cookie_t
00295 xcb_shm_query_version (xcb_connection_t *c);
00296
00308 xcb_shm_query_version_cookie_t
00309 xcb_shm_query_version_unchecked (xcb_connection_t *c);
00310
00325 xcb_shm_query_version_reply_t *
00326 xcb_shm_query_version_reply (xcb_connection_t *c,
00327 xcb_shm_query_version_cookie_t cookie ,
00328 xcb_generic_error_t **e);
00329
00341 xcb_void_cookie_t
00342 xcb_shm_attach_checked (xcb_connection_t *c,
00343 xcb_shm_seg_t shmseg,
00344 uint32_t shmid,
00345 uint8_t read_only);
00346
00355 xcb_void_cookie_t
00356 xcb_shm_attach (xcb_connection_t *c,
00357 xcb_shm_seg_t shmseg,
00358 uint32_t shmid,
00359 uint8_t read_only);
00360
00372 xcb_void_cookie_t
00373 xcb_shm_detach_checked (xcb_connection_t *c,
00374 xcb_shm_seg_t shmseg);
00375
00384 xcb_void_cookie_t
00385 xcb_shm_detach (xcb_connection_t *c,
00386 xcb_shm_seg_t shmseg);
00387
00399 xcb_void_cookie_t
00400 xcb_shm_put_image_checked (xcb_connection_t *c,
00401 xcb_drawable_t drawable,
00402 xcb_gcontext_t gc,
00403 uint16_t total_width,
00404 uint16_t total_height,
00405 uint16_t src_x,
00406 uint16_t src_y,
00407 uint16_t src_width,
00408 uint16_t src_height,
00409 int16_t dst_x,
00410 int16_t dst_y,
00411 uint8_t depth,
00412 uint8_t format,
00413 uint8_t send_event,
00414 xcb_shm_seg_t shmseg,
00415 uint32_t offset);
00416
00425 xcb_void_cookie_t
00426 xcb_shm_put_image (xcb_connection_t *c,
00427 xcb_drawable_t drawable,
00428 xcb_gcontext_t gc,
00429 uint16_t total_width,
00430 uint16_t total_height,
00431 uint16_t src_x,
00432 uint16_t src_y,
00433 uint16_t src_width,
00434 uint16_t src_height,
00435 int16_t dst_x,
00436 int16_t dst_y,
00437 uint8_t depth,
00438 uint8_t format,
00439 uint8_t send_event,
00440 xcb_shm_seg_t shmseg,
00441 uint32_t offset);
00442
00451 xcb_shm_get_image_cookie_t
00452 xcb_shm_get_image (xcb_connection_t *c,
00453 xcb_drawable_t drawable,
00454 int16_t x,
00455 int16_t y,
00456 uint16_t width,
00457 uint16_t height,
00458 uint32_t plane_mask,
00459 uint8_t format,
00460 xcb_shm_seg_t shmseg,
00461 uint32_t offset);
00462
00474 xcb_shm_get_image_cookie_t
00475 xcb_shm_get_image_unchecked (xcb_connection_t *c,
00476 xcb_drawable_t drawable,
00477 int16_t x,
00478 int16_t y,
00479 uint16_t width,
00480 uint16_t height,
00481 uint32_t plane_mask,
00482 uint8_t format,
00483 xcb_shm_seg_t shmseg,
00484 uint32_t offset);
00485
00500 xcb_shm_get_image_reply_t *
00501 xcb_shm_get_image_reply (xcb_connection_t *c,
00502 xcb_shm_get_image_cookie_t cookie ,
00503 xcb_generic_error_t **e);
00504
00516 xcb_void_cookie_t
00517 xcb_shm_create_pixmap_checked (xcb_connection_t *c,
00518 xcb_pixmap_t pid,
00519 xcb_drawable_t drawable,
00520 uint16_t width,
00521 uint16_t height,
00522 uint8_t depth,
00523 xcb_shm_seg_t shmseg,
00524 uint32_t offset);
00525
00534 xcb_void_cookie_t
00535 xcb_shm_create_pixmap (xcb_connection_t *c,
00536 xcb_pixmap_t pid,
00537 xcb_drawable_t drawable,
00538 uint16_t width,
00539 uint16_t height,
00540 uint8_t depth,
00541 xcb_shm_seg_t shmseg,
00542 uint32_t offset);
00543
00555 xcb_void_cookie_t
00556 xcb_shm_attach_fd_checked (xcb_connection_t *c,
00557 xcb_shm_seg_t shmseg,
00558 int32_t shm_fd,
00559 uint8_t read_only);
00560
00569 xcb_void_cookie_t
00570 xcb_shm_attach_fd (xcb_connection_t *c,
00571 xcb_shm_seg_t shmseg,
00572 int32_t shm_fd,
00573 uint8_t read_only);
00574
00583 xcb_shm_create_segment_cookie_t
00584 xcb_shm_create_segment (xcb_connection_t *c,
00585 xcb_shm_seg_t shmseg,
00586 uint32_t size,
00587 uint8_t read_only);
00588
00600 xcb_shm_create_segment_cookie_t
00601 xcb_shm_create_segment_unchecked (xcb_connection_t *c,
00602 xcb_shm_seg_t shmseg,
00603 uint32_t size,
00604 uint8_t read_only);
00605
00620 xcb_shm_create_segment_reply_t *
00621 xcb_shm_create_segment_reply (xcb_connection_t *c,
00622 xcb_shm_create_segment_cookie_t cookie ,
00623 xcb_generic_error_t **e);
00624
00634 int *
00635 xcb_shm_create_segment_reply_fds (xcb_connection_t *c ,
00636 xcb_shm_create_segment_reply_t *reply);
00637
00638
00639 #ifdef __cplusplus
00640 }
00641 #endif
00642
00643 #endif
00644