00001
00002
00003
00004
00005
00012 #ifndef __XF86DRI_H
00013 #define __XF86DRI_H
00014
00015 #include "xcb.h"
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00021 #define XCB_XF86DRI_MAJOR_VERSION 4
00022 #define XCB_XF86DRI_MINOR_VERSION 1
00023
00024 extern xcb_extension_t xcb_xf86dri_id;
00025
00029 typedef struct xcb_xf86dri_drm_clip_rect_t {
00030 int16_t x1;
00031 int16_t y1;
00032 int16_t x2;
00033 int16_t x3;
00034 } xcb_xf86dri_drm_clip_rect_t;
00035
00039 typedef struct xcb_xf86dri_drm_clip_rect_iterator_t {
00040 xcb_xf86dri_drm_clip_rect_t *data;
00041 int rem;
00042 int index;
00043 } xcb_xf86dri_drm_clip_rect_iterator_t;
00044
00048 typedef struct xcb_xf86dri_query_version_cookie_t {
00049 unsigned int sequence;
00050 } xcb_xf86dri_query_version_cookie_t;
00051
00053 #define XCB_XF86DRI_QUERY_VERSION 0
00054
00058 typedef struct xcb_xf86dri_query_version_request_t {
00059 uint8_t major_opcode;
00060 uint8_t minor_opcode;
00061 uint16_t length;
00062 } xcb_xf86dri_query_version_request_t;
00063
00067 typedef struct xcb_xf86dri_query_version_reply_t {
00068 uint8_t response_type;
00069 uint8_t pad0;
00070 uint16_t sequence;
00071 uint32_t length;
00072 uint16_t dri_major_version;
00073 uint16_t dri_minor_version;
00074 uint32_t dri_minor_patch;
00075 } xcb_xf86dri_query_version_reply_t;
00076
00080 typedef struct xcb_xf86dri_query_direct_rendering_capable_cookie_t {
00081 unsigned int sequence;
00082 } xcb_xf86dri_query_direct_rendering_capable_cookie_t;
00083
00085 #define XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE 1
00086
00090 typedef struct xcb_xf86dri_query_direct_rendering_capable_request_t {
00091 uint8_t major_opcode;
00092 uint8_t minor_opcode;
00093 uint16_t length;
00094 uint32_t screen;
00095 } xcb_xf86dri_query_direct_rendering_capable_request_t;
00096
00100 typedef struct xcb_xf86dri_query_direct_rendering_capable_reply_t {
00101 uint8_t response_type;
00102 uint8_t pad0;
00103 uint16_t sequence;
00104 uint32_t length;
00105 uint8_t is_capable;
00106 } xcb_xf86dri_query_direct_rendering_capable_reply_t;
00107
00111 typedef struct xcb_xf86dri_open_connection_cookie_t {
00112 unsigned int sequence;
00113 } xcb_xf86dri_open_connection_cookie_t;
00114
00116 #define XCB_XF86DRI_OPEN_CONNECTION 2
00117
00121 typedef struct xcb_xf86dri_open_connection_request_t {
00122 uint8_t major_opcode;
00123 uint8_t minor_opcode;
00124 uint16_t length;
00125 uint32_t screen;
00126 } xcb_xf86dri_open_connection_request_t;
00127
00131 typedef struct xcb_xf86dri_open_connection_reply_t {
00132 uint8_t response_type;
00133 uint8_t pad0;
00134 uint16_t sequence;
00135 uint32_t length;
00136 uint32_t sarea_handle_low;
00137 uint32_t sarea_handle_high;
00138 uint32_t bus_id_len;
00139 uint8_t pad1[12];
00140 } xcb_xf86dri_open_connection_reply_t;
00141
00143 #define XCB_XF86DRI_CLOSE_CONNECTION 3
00144
00148 typedef struct xcb_xf86dri_close_connection_request_t {
00149 uint8_t major_opcode;
00150 uint8_t minor_opcode;
00151 uint16_t length;
00152 uint32_t screen;
00153 } xcb_xf86dri_close_connection_request_t;
00154
00158 typedef struct xcb_xf86dri_get_client_driver_name_cookie_t {
00159 unsigned int sequence;
00160 } xcb_xf86dri_get_client_driver_name_cookie_t;
00161
00163 #define XCB_XF86DRI_GET_CLIENT_DRIVER_NAME 4
00164
00168 typedef struct xcb_xf86dri_get_client_driver_name_request_t {
00169 uint8_t major_opcode;
00170 uint8_t minor_opcode;
00171 uint16_t length;
00172 uint32_t screen;
00173 } xcb_xf86dri_get_client_driver_name_request_t;
00174
00178 typedef struct xcb_xf86dri_get_client_driver_name_reply_t {
00179 uint8_t response_type;
00180 uint8_t pad0;
00181 uint16_t sequence;
00182 uint32_t length;
00183 uint32_t client_driver_major_version;
00184 uint32_t client_driver_minor_version;
00185 uint32_t client_driver_patch_version;
00186 uint32_t client_driver_name_len;
00187 uint8_t pad1[8];
00188 } xcb_xf86dri_get_client_driver_name_reply_t;
00189
00193 typedef struct xcb_xf86dri_create_context_cookie_t {
00194 unsigned int sequence;
00195 } xcb_xf86dri_create_context_cookie_t;
00196
00198 #define XCB_XF86DRI_CREATE_CONTEXT 5
00199
00203 typedef struct xcb_xf86dri_create_context_request_t {
00204 uint8_t major_opcode;
00205 uint8_t minor_opcode;
00206 uint16_t length;
00207 uint32_t screen;
00208 uint32_t visual;
00209 uint32_t context;
00210 } xcb_xf86dri_create_context_request_t;
00211
00215 typedef struct xcb_xf86dri_create_context_reply_t {
00216 uint8_t response_type;
00217 uint8_t pad0;
00218 uint16_t sequence;
00219 uint32_t length;
00220 uint32_t hw_context;
00221 } xcb_xf86dri_create_context_reply_t;
00222
00224 #define XCB_XF86DRI_DESTROY_CONTEXT 6
00225
00229 typedef struct xcb_xf86dri_destroy_context_request_t {
00230 uint8_t major_opcode;
00231 uint8_t minor_opcode;
00232 uint16_t length;
00233 uint32_t screen;
00234 uint32_t context;
00235 } xcb_xf86dri_destroy_context_request_t;
00236
00240 typedef struct xcb_xf86dri_create_drawable_cookie_t {
00241 unsigned int sequence;
00242 } xcb_xf86dri_create_drawable_cookie_t;
00243
00245 #define XCB_XF86DRI_CREATE_DRAWABLE 7
00246
00250 typedef struct xcb_xf86dri_create_drawable_request_t {
00251 uint8_t major_opcode;
00252 uint8_t minor_opcode;
00253 uint16_t length;
00254 uint32_t screen;
00255 uint32_t drawable;
00256 } xcb_xf86dri_create_drawable_request_t;
00257
00261 typedef struct xcb_xf86dri_create_drawable_reply_t {
00262 uint8_t response_type;
00263 uint8_t pad0;
00264 uint16_t sequence;
00265 uint32_t length;
00266 uint32_t hw_drawable_handle;
00267 } xcb_xf86dri_create_drawable_reply_t;
00268
00270 #define XCB_XF86DRI_DESTROY_DRAWABLE 8
00271
00275 typedef struct xcb_xf86dri_destroy_drawable_request_t {
00276 uint8_t major_opcode;
00277 uint8_t minor_opcode;
00278 uint16_t length;
00279 uint32_t screen;
00280 uint32_t drawable;
00281 } xcb_xf86dri_destroy_drawable_request_t;
00282
00286 typedef struct xcb_xf86dri_get_drawable_info_cookie_t {
00287 unsigned int sequence;
00288 } xcb_xf86dri_get_drawable_info_cookie_t;
00289
00291 #define XCB_XF86DRI_GET_DRAWABLE_INFO 9
00292
00296 typedef struct xcb_xf86dri_get_drawable_info_request_t {
00297 uint8_t major_opcode;
00298 uint8_t minor_opcode;
00299 uint16_t length;
00300 uint32_t screen;
00301 uint32_t drawable;
00302 } xcb_xf86dri_get_drawable_info_request_t;
00303
00307 typedef struct xcb_xf86dri_get_drawable_info_reply_t {
00308 uint8_t response_type;
00309 uint8_t pad0;
00310 uint16_t sequence;
00311 uint32_t length;
00312 uint32_t drawable_table_index;
00313 uint32_t drawable_table_stamp;
00314 int16_t drawable_origin_X;
00315 int16_t drawable_origin_Y;
00316 int16_t drawable_size_W;
00317 int16_t drawable_size_H;
00318 uint32_t num_clip_rects;
00319 int16_t back_x;
00320 int16_t back_y;
00321 uint32_t num_back_clip_rects;
00322 } xcb_xf86dri_get_drawable_info_reply_t;
00323
00327 typedef struct xcb_xf86dri_get_device_info_cookie_t {
00328 unsigned int sequence;
00329 } xcb_xf86dri_get_device_info_cookie_t;
00330
00332 #define XCB_XF86DRI_GET_DEVICE_INFO 10
00333
00337 typedef struct xcb_xf86dri_get_device_info_request_t {
00338 uint8_t major_opcode;
00339 uint8_t minor_opcode;
00340 uint16_t length;
00341 uint32_t screen;
00342 } xcb_xf86dri_get_device_info_request_t;
00343
00347 typedef struct xcb_xf86dri_get_device_info_reply_t {
00348 uint8_t response_type;
00349 uint8_t pad0;
00350 uint16_t sequence;
00351 uint32_t length;
00352 uint32_t framebuffer_handle_low;
00353 uint32_t framebuffer_handle_high;
00354 uint32_t framebuffer_origin_offset;
00355 uint32_t framebuffer_size;
00356 uint32_t framebuffer_stride;
00357 uint32_t device_private_size;
00358 } xcb_xf86dri_get_device_info_reply_t;
00359
00363 typedef struct xcb_xf86dri_auth_connection_cookie_t {
00364 unsigned int sequence;
00365 } xcb_xf86dri_auth_connection_cookie_t;
00366
00368 #define XCB_XF86DRI_AUTH_CONNECTION 11
00369
00373 typedef struct xcb_xf86dri_auth_connection_request_t {
00374 uint8_t major_opcode;
00375 uint8_t minor_opcode;
00376 uint16_t length;
00377 uint32_t screen;
00378 uint32_t magic;
00379 } xcb_xf86dri_auth_connection_request_t;
00380
00384 typedef struct xcb_xf86dri_auth_connection_reply_t {
00385 uint8_t response_type;
00386 uint8_t pad0;
00387 uint16_t sequence;
00388 uint32_t length;
00389 uint32_t authenticated;
00390 } xcb_xf86dri_auth_connection_reply_t;
00391
00400 void
00401 xcb_xf86dri_drm_clip_rect_next (xcb_xf86dri_drm_clip_rect_iterator_t *i );
00402
00412 xcb_generic_iterator_t
00413 xcb_xf86dri_drm_clip_rect_end (xcb_xf86dri_drm_clip_rect_iterator_t i );
00414
00423 xcb_xf86dri_query_version_cookie_t
00424 xcb_xf86dri_query_version (xcb_connection_t *c );
00425
00437 xcb_xf86dri_query_version_cookie_t
00438 xcb_xf86dri_query_version_unchecked (xcb_connection_t *c );
00439
00454 xcb_xf86dri_query_version_reply_t *
00455 xcb_xf86dri_query_version_reply (xcb_connection_t *c ,
00456 xcb_xf86dri_query_version_cookie_t cookie ,
00457 xcb_generic_error_t **e );
00458
00467 xcb_xf86dri_query_direct_rendering_capable_cookie_t
00468 xcb_xf86dri_query_direct_rendering_capable (xcb_connection_t *c ,
00469 uint32_t screen );
00470
00482 xcb_xf86dri_query_direct_rendering_capable_cookie_t
00483 xcb_xf86dri_query_direct_rendering_capable_unchecked (xcb_connection_t *c ,
00484 uint32_t screen );
00485
00500 xcb_xf86dri_query_direct_rendering_capable_reply_t *
00501 xcb_xf86dri_query_direct_rendering_capable_reply (xcb_connection_t *c ,
00502 xcb_xf86dri_query_direct_rendering_capable_cookie_t cookie ,
00503 xcb_generic_error_t **e );
00504
00505 int
00506 xcb_xf86dri_open_connection_sizeof (const void *_buffer );
00507
00516 xcb_xf86dri_open_connection_cookie_t
00517 xcb_xf86dri_open_connection (xcb_connection_t *c ,
00518 uint32_t screen );
00519
00531 xcb_xf86dri_open_connection_cookie_t
00532 xcb_xf86dri_open_connection_unchecked (xcb_connection_t *c ,
00533 uint32_t screen );
00534
00535 char *
00536 xcb_xf86dri_open_connection_bus_id (const xcb_xf86dri_open_connection_reply_t *R );
00537
00538 int
00539 xcb_xf86dri_open_connection_bus_id_length (const xcb_xf86dri_open_connection_reply_t *R );
00540
00541 xcb_generic_iterator_t
00542 xcb_xf86dri_open_connection_bus_id_end (const xcb_xf86dri_open_connection_reply_t *R );
00543
00558 xcb_xf86dri_open_connection_reply_t *
00559 xcb_xf86dri_open_connection_reply (xcb_connection_t *c ,
00560 xcb_xf86dri_open_connection_cookie_t cookie ,
00561 xcb_generic_error_t **e );
00562
00574 xcb_void_cookie_t
00575 xcb_xf86dri_close_connection_checked (xcb_connection_t *c ,
00576 uint32_t screen );
00577
00586 xcb_void_cookie_t
00587 xcb_xf86dri_close_connection (xcb_connection_t *c ,
00588 uint32_t screen );
00589
00590 int
00591 xcb_xf86dri_get_client_driver_name_sizeof (const void *_buffer );
00592
00601 xcb_xf86dri_get_client_driver_name_cookie_t
00602 xcb_xf86dri_get_client_driver_name (xcb_connection_t *c ,
00603 uint32_t screen );
00604
00616 xcb_xf86dri_get_client_driver_name_cookie_t
00617 xcb_xf86dri_get_client_driver_name_unchecked (xcb_connection_t *c ,
00618 uint32_t screen );
00619
00620 char *
00621 xcb_xf86dri_get_client_driver_name_client_driver_name (const xcb_xf86dri_get_client_driver_name_reply_t *R );
00622
00623 int
00624 xcb_xf86dri_get_client_driver_name_client_driver_name_length (const xcb_xf86dri_get_client_driver_name_reply_t *R );
00625
00626 xcb_generic_iterator_t
00627 xcb_xf86dri_get_client_driver_name_client_driver_name_end (const xcb_xf86dri_get_client_driver_name_reply_t *R );
00628
00643 xcb_xf86dri_get_client_driver_name_reply_t *
00644 xcb_xf86dri_get_client_driver_name_reply (xcb_connection_t *c ,
00645 xcb_xf86dri_get_client_driver_name_cookie_t cookie ,
00646 xcb_generic_error_t **e );
00647
00656 xcb_xf86dri_create_context_cookie_t
00657 xcb_xf86dri_create_context (xcb_connection_t *c ,
00658 uint32_t screen ,
00659 uint32_t visual ,
00660 uint32_t context );
00661
00673 xcb_xf86dri_create_context_cookie_t
00674 xcb_xf86dri_create_context_unchecked (xcb_connection_t *c ,
00675 uint32_t screen ,
00676 uint32_t visual ,
00677 uint32_t context );
00678
00693 xcb_xf86dri_create_context_reply_t *
00694 xcb_xf86dri_create_context_reply (xcb_connection_t *c ,
00695 xcb_xf86dri_create_context_cookie_t cookie ,
00696 xcb_generic_error_t **e );
00697
00709 xcb_void_cookie_t
00710 xcb_xf86dri_destroy_context_checked (xcb_connection_t *c ,
00711 uint32_t screen ,
00712 uint32_t context );
00713
00722 xcb_void_cookie_t
00723 xcb_xf86dri_destroy_context (xcb_connection_t *c ,
00724 uint32_t screen ,
00725 uint32_t context );
00726
00735 xcb_xf86dri_create_drawable_cookie_t
00736 xcb_xf86dri_create_drawable (xcb_connection_t *c ,
00737 uint32_t screen ,
00738 uint32_t drawable );
00739
00751 xcb_xf86dri_create_drawable_cookie_t
00752 xcb_xf86dri_create_drawable_unchecked (xcb_connection_t *c ,
00753 uint32_t screen ,
00754 uint32_t drawable );
00755
00770 xcb_xf86dri_create_drawable_reply_t *
00771 xcb_xf86dri_create_drawable_reply (xcb_connection_t *c ,
00772 xcb_xf86dri_create_drawable_cookie_t cookie ,
00773 xcb_generic_error_t **e );
00774
00786 xcb_void_cookie_t
00787 xcb_xf86dri_destroy_drawable_checked (xcb_connection_t *c ,
00788 uint32_t screen ,
00789 uint32_t drawable );
00790
00799 xcb_void_cookie_t
00800 xcb_xf86dri_destroy_drawable (xcb_connection_t *c ,
00801 uint32_t screen ,
00802 uint32_t drawable );
00803
00804 int
00805 xcb_xf86dri_get_drawable_info_sizeof (const void *_buffer );
00806
00815 xcb_xf86dri_get_drawable_info_cookie_t
00816 xcb_xf86dri_get_drawable_info (xcb_connection_t *c ,
00817 uint32_t screen ,
00818 uint32_t drawable );
00819
00831 xcb_xf86dri_get_drawable_info_cookie_t
00832 xcb_xf86dri_get_drawable_info_unchecked (xcb_connection_t *c ,
00833 uint32_t screen ,
00834 uint32_t drawable );
00835
00836 xcb_xf86dri_drm_clip_rect_t *
00837 xcb_xf86dri_get_drawable_info_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R );
00838
00839 int
00840 xcb_xf86dri_get_drawable_info_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R );
00841
00842 xcb_xf86dri_drm_clip_rect_iterator_t
00843 xcb_xf86dri_get_drawable_info_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R );
00844
00845 xcb_xf86dri_drm_clip_rect_t *
00846 xcb_xf86dri_get_drawable_info_back_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R );
00847
00848 int
00849 xcb_xf86dri_get_drawable_info_back_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R );
00850
00851 xcb_xf86dri_drm_clip_rect_iterator_t
00852 xcb_xf86dri_get_drawable_info_back_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R );
00853
00868 xcb_xf86dri_get_drawable_info_reply_t *
00869 xcb_xf86dri_get_drawable_info_reply (xcb_connection_t *c ,
00870 xcb_xf86dri_get_drawable_info_cookie_t cookie ,
00871 xcb_generic_error_t **e );
00872
00873 int
00874 xcb_xf86dri_get_device_info_sizeof (const void *_buffer );
00875
00884 xcb_xf86dri_get_device_info_cookie_t
00885 xcb_xf86dri_get_device_info (xcb_connection_t *c ,
00886 uint32_t screen );
00887
00899 xcb_xf86dri_get_device_info_cookie_t
00900 xcb_xf86dri_get_device_info_unchecked (xcb_connection_t *c ,
00901 uint32_t screen );
00902
00903 uint32_t *
00904 xcb_xf86dri_get_device_info_device_private (const xcb_xf86dri_get_device_info_reply_t *R );
00905
00906 int
00907 xcb_xf86dri_get_device_info_device_private_length (const xcb_xf86dri_get_device_info_reply_t *R );
00908
00909 xcb_generic_iterator_t
00910 xcb_xf86dri_get_device_info_device_private_end (const xcb_xf86dri_get_device_info_reply_t *R );
00911
00926 xcb_xf86dri_get_device_info_reply_t *
00927 xcb_xf86dri_get_device_info_reply (xcb_connection_t *c ,
00928 xcb_xf86dri_get_device_info_cookie_t cookie ,
00929 xcb_generic_error_t **e );
00930
00939 xcb_xf86dri_auth_connection_cookie_t
00940 xcb_xf86dri_auth_connection (xcb_connection_t *c ,
00941 uint32_t screen ,
00942 uint32_t magic );
00943
00955 xcb_xf86dri_auth_connection_cookie_t
00956 xcb_xf86dri_auth_connection_unchecked (xcb_connection_t *c ,
00957 uint32_t screen ,
00958 uint32_t magic );
00959
00974 xcb_xf86dri_auth_connection_reply_t *
00975 xcb_xf86dri_auth_connection_reply (xcb_connection_t *c ,
00976 xcb_xf86dri_auth_connection_cookie_t cookie ,
00977 xcb_generic_error_t **e );
00978
00979
00980 #ifdef __cplusplus
00981 }
00982 #endif
00983
00984 #endif
00985