xf86dri.h 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988
  1. /*
  2. * This file generated automatically from xf86dri.xml by c_client.py.
  3. * Edit at your peril.
  4. */
  5. /**
  6. * @defgroup XCB_XF86Dri_API XCB XF86Dri API
  7. * @brief XF86Dri XCB Protocol Implementation.
  8. * @{
  9. **/
  10. #ifndef __XF86DRI_H
  11. #define __XF86DRI_H
  12. #include "xcb.h"
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #define XCB_XF86DRI_MAJOR_VERSION 4
  17. #define XCB_XF86DRI_MINOR_VERSION 1
  18. extern xcb_extension_t xcb_xf86dri_id;
  19. /**
  20. * @brief xcb_xf86dri_drm_clip_rect_t
  21. **/
  22. typedef struct xcb_xf86dri_drm_clip_rect_t {
  23. int16_t x1;
  24. int16_t y1;
  25. int16_t x2;
  26. int16_t x3;
  27. } xcb_xf86dri_drm_clip_rect_t;
  28. /**
  29. * @brief xcb_xf86dri_drm_clip_rect_iterator_t
  30. **/
  31. typedef struct xcb_xf86dri_drm_clip_rect_iterator_t {
  32. xcb_xf86dri_drm_clip_rect_t *data;
  33. int rem;
  34. int index;
  35. } xcb_xf86dri_drm_clip_rect_iterator_t;
  36. /**
  37. * @brief xcb_xf86dri_query_version_cookie_t
  38. **/
  39. typedef struct xcb_xf86dri_query_version_cookie_t {
  40. unsigned int sequence;
  41. } xcb_xf86dri_query_version_cookie_t;
  42. /** Opcode for xcb_xf86dri_query_version. */
  43. #define XCB_XF86DRI_QUERY_VERSION 0
  44. /**
  45. * @brief xcb_xf86dri_query_version_request_t
  46. **/
  47. typedef struct xcb_xf86dri_query_version_request_t {
  48. uint8_t major_opcode;
  49. uint8_t minor_opcode;
  50. uint16_t length;
  51. } xcb_xf86dri_query_version_request_t;
  52. /**
  53. * @brief xcb_xf86dri_query_version_reply_t
  54. **/
  55. typedef struct xcb_xf86dri_query_version_reply_t {
  56. uint8_t response_type;
  57. uint8_t pad0;
  58. uint16_t sequence;
  59. uint32_t length;
  60. uint16_t dri_major_version;
  61. uint16_t dri_minor_version;
  62. uint32_t dri_minor_patch;
  63. } xcb_xf86dri_query_version_reply_t;
  64. /**
  65. * @brief xcb_xf86dri_query_direct_rendering_capable_cookie_t
  66. **/
  67. typedef struct xcb_xf86dri_query_direct_rendering_capable_cookie_t {
  68. unsigned int sequence;
  69. } xcb_xf86dri_query_direct_rendering_capable_cookie_t;
  70. /** Opcode for xcb_xf86dri_query_direct_rendering_capable. */
  71. #define XCB_XF86DRI_QUERY_DIRECT_RENDERING_CAPABLE 1
  72. /**
  73. * @brief xcb_xf86dri_query_direct_rendering_capable_request_t
  74. **/
  75. typedef struct xcb_xf86dri_query_direct_rendering_capable_request_t {
  76. uint8_t major_opcode;
  77. uint8_t minor_opcode;
  78. uint16_t length;
  79. uint32_t screen;
  80. } xcb_xf86dri_query_direct_rendering_capable_request_t;
  81. /**
  82. * @brief xcb_xf86dri_query_direct_rendering_capable_reply_t
  83. **/
  84. typedef struct xcb_xf86dri_query_direct_rendering_capable_reply_t {
  85. uint8_t response_type;
  86. uint8_t pad0;
  87. uint16_t sequence;
  88. uint32_t length;
  89. uint8_t is_capable;
  90. } xcb_xf86dri_query_direct_rendering_capable_reply_t;
  91. /**
  92. * @brief xcb_xf86dri_open_connection_cookie_t
  93. **/
  94. typedef struct xcb_xf86dri_open_connection_cookie_t {
  95. unsigned int sequence;
  96. } xcb_xf86dri_open_connection_cookie_t;
  97. /** Opcode for xcb_xf86dri_open_connection. */
  98. #define XCB_XF86DRI_OPEN_CONNECTION 2
  99. /**
  100. * @brief xcb_xf86dri_open_connection_request_t
  101. **/
  102. typedef struct xcb_xf86dri_open_connection_request_t {
  103. uint8_t major_opcode;
  104. uint8_t minor_opcode;
  105. uint16_t length;
  106. uint32_t screen;
  107. } xcb_xf86dri_open_connection_request_t;
  108. /**
  109. * @brief xcb_xf86dri_open_connection_reply_t
  110. **/
  111. typedef struct xcb_xf86dri_open_connection_reply_t {
  112. uint8_t response_type;
  113. uint8_t pad0;
  114. uint16_t sequence;
  115. uint32_t length;
  116. uint32_t sarea_handle_low;
  117. uint32_t sarea_handle_high;
  118. uint32_t bus_id_len;
  119. uint8_t pad1[12];
  120. } xcb_xf86dri_open_connection_reply_t;
  121. /** Opcode for xcb_xf86dri_close_connection. */
  122. #define XCB_XF86DRI_CLOSE_CONNECTION 3
  123. /**
  124. * @brief xcb_xf86dri_close_connection_request_t
  125. **/
  126. typedef struct xcb_xf86dri_close_connection_request_t {
  127. uint8_t major_opcode;
  128. uint8_t minor_opcode;
  129. uint16_t length;
  130. uint32_t screen;
  131. } xcb_xf86dri_close_connection_request_t;
  132. /**
  133. * @brief xcb_xf86dri_get_client_driver_name_cookie_t
  134. **/
  135. typedef struct xcb_xf86dri_get_client_driver_name_cookie_t {
  136. unsigned int sequence;
  137. } xcb_xf86dri_get_client_driver_name_cookie_t;
  138. /** Opcode for xcb_xf86dri_get_client_driver_name. */
  139. #define XCB_XF86DRI_GET_CLIENT_DRIVER_NAME 4
  140. /**
  141. * @brief xcb_xf86dri_get_client_driver_name_request_t
  142. **/
  143. typedef struct xcb_xf86dri_get_client_driver_name_request_t {
  144. uint8_t major_opcode;
  145. uint8_t minor_opcode;
  146. uint16_t length;
  147. uint32_t screen;
  148. } xcb_xf86dri_get_client_driver_name_request_t;
  149. /**
  150. * @brief xcb_xf86dri_get_client_driver_name_reply_t
  151. **/
  152. typedef struct xcb_xf86dri_get_client_driver_name_reply_t {
  153. uint8_t response_type;
  154. uint8_t pad0;
  155. uint16_t sequence;
  156. uint32_t length;
  157. uint32_t client_driver_major_version;
  158. uint32_t client_driver_minor_version;
  159. uint32_t client_driver_patch_version;
  160. uint32_t client_driver_name_len;
  161. uint8_t pad1[8];
  162. } xcb_xf86dri_get_client_driver_name_reply_t;
  163. /**
  164. * @brief xcb_xf86dri_create_context_cookie_t
  165. **/
  166. typedef struct xcb_xf86dri_create_context_cookie_t {
  167. unsigned int sequence;
  168. } xcb_xf86dri_create_context_cookie_t;
  169. /** Opcode for xcb_xf86dri_create_context. */
  170. #define XCB_XF86DRI_CREATE_CONTEXT 5
  171. /**
  172. * @brief xcb_xf86dri_create_context_request_t
  173. **/
  174. typedef struct xcb_xf86dri_create_context_request_t {
  175. uint8_t major_opcode;
  176. uint8_t minor_opcode;
  177. uint16_t length;
  178. uint32_t screen;
  179. uint32_t visual;
  180. uint32_t context;
  181. } xcb_xf86dri_create_context_request_t;
  182. /**
  183. * @brief xcb_xf86dri_create_context_reply_t
  184. **/
  185. typedef struct xcb_xf86dri_create_context_reply_t {
  186. uint8_t response_type;
  187. uint8_t pad0;
  188. uint16_t sequence;
  189. uint32_t length;
  190. uint32_t hw_context;
  191. } xcb_xf86dri_create_context_reply_t;
  192. /** Opcode for xcb_xf86dri_destroy_context. */
  193. #define XCB_XF86DRI_DESTROY_CONTEXT 6
  194. /**
  195. * @brief xcb_xf86dri_destroy_context_request_t
  196. **/
  197. typedef struct xcb_xf86dri_destroy_context_request_t {
  198. uint8_t major_opcode;
  199. uint8_t minor_opcode;
  200. uint16_t length;
  201. uint32_t screen;
  202. uint32_t context;
  203. } xcb_xf86dri_destroy_context_request_t;
  204. /**
  205. * @brief xcb_xf86dri_create_drawable_cookie_t
  206. **/
  207. typedef struct xcb_xf86dri_create_drawable_cookie_t {
  208. unsigned int sequence;
  209. } xcb_xf86dri_create_drawable_cookie_t;
  210. /** Opcode for xcb_xf86dri_create_drawable. */
  211. #define XCB_XF86DRI_CREATE_DRAWABLE 7
  212. /**
  213. * @brief xcb_xf86dri_create_drawable_request_t
  214. **/
  215. typedef struct xcb_xf86dri_create_drawable_request_t {
  216. uint8_t major_opcode;
  217. uint8_t minor_opcode;
  218. uint16_t length;
  219. uint32_t screen;
  220. uint32_t drawable;
  221. } xcb_xf86dri_create_drawable_request_t;
  222. /**
  223. * @brief xcb_xf86dri_create_drawable_reply_t
  224. **/
  225. typedef struct xcb_xf86dri_create_drawable_reply_t {
  226. uint8_t response_type;
  227. uint8_t pad0;
  228. uint16_t sequence;
  229. uint32_t length;
  230. uint32_t hw_drawable_handle;
  231. } xcb_xf86dri_create_drawable_reply_t;
  232. /** Opcode for xcb_xf86dri_destroy_drawable. */
  233. #define XCB_XF86DRI_DESTROY_DRAWABLE 8
  234. /**
  235. * @brief xcb_xf86dri_destroy_drawable_request_t
  236. **/
  237. typedef struct xcb_xf86dri_destroy_drawable_request_t {
  238. uint8_t major_opcode;
  239. uint8_t minor_opcode;
  240. uint16_t length;
  241. uint32_t screen;
  242. uint32_t drawable;
  243. } xcb_xf86dri_destroy_drawable_request_t;
  244. /**
  245. * @brief xcb_xf86dri_get_drawable_info_cookie_t
  246. **/
  247. typedef struct xcb_xf86dri_get_drawable_info_cookie_t {
  248. unsigned int sequence;
  249. } xcb_xf86dri_get_drawable_info_cookie_t;
  250. /** Opcode for xcb_xf86dri_get_drawable_info. */
  251. #define XCB_XF86DRI_GET_DRAWABLE_INFO 9
  252. /**
  253. * @brief xcb_xf86dri_get_drawable_info_request_t
  254. **/
  255. typedef struct xcb_xf86dri_get_drawable_info_request_t {
  256. uint8_t major_opcode;
  257. uint8_t minor_opcode;
  258. uint16_t length;
  259. uint32_t screen;
  260. uint32_t drawable;
  261. } xcb_xf86dri_get_drawable_info_request_t;
  262. /**
  263. * @brief xcb_xf86dri_get_drawable_info_reply_t
  264. **/
  265. typedef struct xcb_xf86dri_get_drawable_info_reply_t {
  266. uint8_t response_type;
  267. uint8_t pad0;
  268. uint16_t sequence;
  269. uint32_t length;
  270. uint32_t drawable_table_index;
  271. uint32_t drawable_table_stamp;
  272. int16_t drawable_origin_X;
  273. int16_t drawable_origin_Y;
  274. int16_t drawable_size_W;
  275. int16_t drawable_size_H;
  276. uint32_t num_clip_rects;
  277. int16_t back_x;
  278. int16_t back_y;
  279. uint32_t num_back_clip_rects;
  280. } xcb_xf86dri_get_drawable_info_reply_t;
  281. /**
  282. * @brief xcb_xf86dri_get_device_info_cookie_t
  283. **/
  284. typedef struct xcb_xf86dri_get_device_info_cookie_t {
  285. unsigned int sequence;
  286. } xcb_xf86dri_get_device_info_cookie_t;
  287. /** Opcode for xcb_xf86dri_get_device_info. */
  288. #define XCB_XF86DRI_GET_DEVICE_INFO 10
  289. /**
  290. * @brief xcb_xf86dri_get_device_info_request_t
  291. **/
  292. typedef struct xcb_xf86dri_get_device_info_request_t {
  293. uint8_t major_opcode;
  294. uint8_t minor_opcode;
  295. uint16_t length;
  296. uint32_t screen;
  297. } xcb_xf86dri_get_device_info_request_t;
  298. /**
  299. * @brief xcb_xf86dri_get_device_info_reply_t
  300. **/
  301. typedef struct xcb_xf86dri_get_device_info_reply_t {
  302. uint8_t response_type;
  303. uint8_t pad0;
  304. uint16_t sequence;
  305. uint32_t length;
  306. uint32_t framebuffer_handle_low;
  307. uint32_t framebuffer_handle_high;
  308. uint32_t framebuffer_origin_offset;
  309. uint32_t framebuffer_size;
  310. uint32_t framebuffer_stride;
  311. uint32_t device_private_size;
  312. } xcb_xf86dri_get_device_info_reply_t;
  313. /**
  314. * @brief xcb_xf86dri_auth_connection_cookie_t
  315. **/
  316. typedef struct xcb_xf86dri_auth_connection_cookie_t {
  317. unsigned int sequence;
  318. } xcb_xf86dri_auth_connection_cookie_t;
  319. /** Opcode for xcb_xf86dri_auth_connection. */
  320. #define XCB_XF86DRI_AUTH_CONNECTION 11
  321. /**
  322. * @brief xcb_xf86dri_auth_connection_request_t
  323. **/
  324. typedef struct xcb_xf86dri_auth_connection_request_t {
  325. uint8_t major_opcode;
  326. uint8_t minor_opcode;
  327. uint16_t length;
  328. uint32_t screen;
  329. uint32_t magic;
  330. } xcb_xf86dri_auth_connection_request_t;
  331. /**
  332. * @brief xcb_xf86dri_auth_connection_reply_t
  333. **/
  334. typedef struct xcb_xf86dri_auth_connection_reply_t {
  335. uint8_t response_type;
  336. uint8_t pad0;
  337. uint16_t sequence;
  338. uint32_t length;
  339. uint32_t authenticated;
  340. } xcb_xf86dri_auth_connection_reply_t;
  341. /**
  342. * Get the next element of the iterator
  343. * @param i Pointer to a xcb_xf86dri_drm_clip_rect_iterator_t
  344. *
  345. * Get the next element in the iterator. The member rem is
  346. * decreased by one. The member data points to the next
  347. * element. The member index is increased by sizeof(xcb_xf86dri_drm_clip_rect_t)
  348. */
  349. void
  350. xcb_xf86dri_drm_clip_rect_next (xcb_xf86dri_drm_clip_rect_iterator_t *i);
  351. /**
  352. * Return the iterator pointing to the last element
  353. * @param i An xcb_xf86dri_drm_clip_rect_iterator_t
  354. * @return The iterator pointing to the last element
  355. *
  356. * Set the current element in the iterator to the last element.
  357. * The member rem is set to 0. The member data points to the
  358. * last element.
  359. */
  360. xcb_generic_iterator_t
  361. xcb_xf86dri_drm_clip_rect_end (xcb_xf86dri_drm_clip_rect_iterator_t i);
  362. /**
  363. *
  364. * @param c The connection
  365. * @return A cookie
  366. *
  367. * Delivers a request to the X server.
  368. *
  369. */
  370. xcb_xf86dri_query_version_cookie_t
  371. xcb_xf86dri_query_version (xcb_connection_t *c);
  372. /**
  373. *
  374. * @param c The connection
  375. * @return A cookie
  376. *
  377. * Delivers a request to the X server.
  378. *
  379. * This form can be used only if the request will cause
  380. * a reply to be generated. Any returned error will be
  381. * placed in the event queue.
  382. */
  383. xcb_xf86dri_query_version_cookie_t
  384. xcb_xf86dri_query_version_unchecked (xcb_connection_t *c);
  385. /**
  386. * Return the reply
  387. * @param c The connection
  388. * @param cookie The cookie
  389. * @param e The xcb_generic_error_t supplied
  390. *
  391. * Returns the reply of the request asked by
  392. *
  393. * The parameter @p e supplied to this function must be NULL if
  394. * xcb_xf86dri_query_version_unchecked(). is used.
  395. * Otherwise, it stores the error if any.
  396. *
  397. * The returned value must be freed by the caller using free().
  398. */
  399. xcb_xf86dri_query_version_reply_t *
  400. xcb_xf86dri_query_version_reply (xcb_connection_t *c,
  401. xcb_xf86dri_query_version_cookie_t cookie /**< */,
  402. xcb_generic_error_t **e);
  403. /**
  404. *
  405. * @param c The connection
  406. * @return A cookie
  407. *
  408. * Delivers a request to the X server.
  409. *
  410. */
  411. xcb_xf86dri_query_direct_rendering_capable_cookie_t
  412. xcb_xf86dri_query_direct_rendering_capable (xcb_connection_t *c,
  413. uint32_t screen);
  414. /**
  415. *
  416. * @param c The connection
  417. * @return A cookie
  418. *
  419. * Delivers a request to the X server.
  420. *
  421. * This form can be used only if the request will cause
  422. * a reply to be generated. Any returned error will be
  423. * placed in the event queue.
  424. */
  425. xcb_xf86dri_query_direct_rendering_capable_cookie_t
  426. xcb_xf86dri_query_direct_rendering_capable_unchecked (xcb_connection_t *c,
  427. uint32_t screen);
  428. /**
  429. * Return the reply
  430. * @param c The connection
  431. * @param cookie The cookie
  432. * @param e The xcb_generic_error_t supplied
  433. *
  434. * Returns the reply of the request asked by
  435. *
  436. * The parameter @p e supplied to this function must be NULL if
  437. * xcb_xf86dri_query_direct_rendering_capable_unchecked(). is used.
  438. * Otherwise, it stores the error if any.
  439. *
  440. * The returned value must be freed by the caller using free().
  441. */
  442. xcb_xf86dri_query_direct_rendering_capable_reply_t *
  443. xcb_xf86dri_query_direct_rendering_capable_reply (xcb_connection_t *c,
  444. xcb_xf86dri_query_direct_rendering_capable_cookie_t cookie /**< */,
  445. xcb_generic_error_t **e);
  446. int
  447. xcb_xf86dri_open_connection_sizeof (const void *_buffer);
  448. /**
  449. *
  450. * @param c The connection
  451. * @return A cookie
  452. *
  453. * Delivers a request to the X server.
  454. *
  455. */
  456. xcb_xf86dri_open_connection_cookie_t
  457. xcb_xf86dri_open_connection (xcb_connection_t *c,
  458. uint32_t screen);
  459. /**
  460. *
  461. * @param c The connection
  462. * @return A cookie
  463. *
  464. * Delivers a request to the X server.
  465. *
  466. * This form can be used only if the request will cause
  467. * a reply to be generated. Any returned error will be
  468. * placed in the event queue.
  469. */
  470. xcb_xf86dri_open_connection_cookie_t
  471. xcb_xf86dri_open_connection_unchecked (xcb_connection_t *c,
  472. uint32_t screen);
  473. char *
  474. xcb_xf86dri_open_connection_bus_id (const xcb_xf86dri_open_connection_reply_t *R);
  475. int
  476. xcb_xf86dri_open_connection_bus_id_length (const xcb_xf86dri_open_connection_reply_t *R);
  477. xcb_generic_iterator_t
  478. xcb_xf86dri_open_connection_bus_id_end (const xcb_xf86dri_open_connection_reply_t *R);
  479. /**
  480. * Return the reply
  481. * @param c The connection
  482. * @param cookie The cookie
  483. * @param e The xcb_generic_error_t supplied
  484. *
  485. * Returns the reply of the request asked by
  486. *
  487. * The parameter @p e supplied to this function must be NULL if
  488. * xcb_xf86dri_open_connection_unchecked(). is used.
  489. * Otherwise, it stores the error if any.
  490. *
  491. * The returned value must be freed by the caller using free().
  492. */
  493. xcb_xf86dri_open_connection_reply_t *
  494. xcb_xf86dri_open_connection_reply (xcb_connection_t *c,
  495. xcb_xf86dri_open_connection_cookie_t cookie /**< */,
  496. xcb_generic_error_t **e);
  497. /**
  498. *
  499. * @param c The connection
  500. * @return A cookie
  501. *
  502. * Delivers a request to the X server.
  503. *
  504. * This form can be used only if the request will not cause
  505. * a reply to be generated. Any returned error will be
  506. * saved for handling by xcb_request_check().
  507. */
  508. xcb_void_cookie_t
  509. xcb_xf86dri_close_connection_checked (xcb_connection_t *c,
  510. uint32_t screen);
  511. /**
  512. *
  513. * @param c The connection
  514. * @return A cookie
  515. *
  516. * Delivers a request to the X server.
  517. *
  518. */
  519. xcb_void_cookie_t
  520. xcb_xf86dri_close_connection (xcb_connection_t *c,
  521. uint32_t screen);
  522. int
  523. xcb_xf86dri_get_client_driver_name_sizeof (const void *_buffer);
  524. /**
  525. *
  526. * @param c The connection
  527. * @return A cookie
  528. *
  529. * Delivers a request to the X server.
  530. *
  531. */
  532. xcb_xf86dri_get_client_driver_name_cookie_t
  533. xcb_xf86dri_get_client_driver_name (xcb_connection_t *c,
  534. uint32_t screen);
  535. /**
  536. *
  537. * @param c The connection
  538. * @return A cookie
  539. *
  540. * Delivers a request to the X server.
  541. *
  542. * This form can be used only if the request will cause
  543. * a reply to be generated. Any returned error will be
  544. * placed in the event queue.
  545. */
  546. xcb_xf86dri_get_client_driver_name_cookie_t
  547. xcb_xf86dri_get_client_driver_name_unchecked (xcb_connection_t *c,
  548. uint32_t screen);
  549. char *
  550. xcb_xf86dri_get_client_driver_name_client_driver_name (const xcb_xf86dri_get_client_driver_name_reply_t *R);
  551. int
  552. xcb_xf86dri_get_client_driver_name_client_driver_name_length (const xcb_xf86dri_get_client_driver_name_reply_t *R);
  553. xcb_generic_iterator_t
  554. xcb_xf86dri_get_client_driver_name_client_driver_name_end (const xcb_xf86dri_get_client_driver_name_reply_t *R);
  555. /**
  556. * Return the reply
  557. * @param c The connection
  558. * @param cookie The cookie
  559. * @param e The xcb_generic_error_t supplied
  560. *
  561. * Returns the reply of the request asked by
  562. *
  563. * The parameter @p e supplied to this function must be NULL if
  564. * xcb_xf86dri_get_client_driver_name_unchecked(). is used.
  565. * Otherwise, it stores the error if any.
  566. *
  567. * The returned value must be freed by the caller using free().
  568. */
  569. xcb_xf86dri_get_client_driver_name_reply_t *
  570. xcb_xf86dri_get_client_driver_name_reply (xcb_connection_t *c,
  571. xcb_xf86dri_get_client_driver_name_cookie_t cookie /**< */,
  572. xcb_generic_error_t **e);
  573. /**
  574. *
  575. * @param c The connection
  576. * @return A cookie
  577. *
  578. * Delivers a request to the X server.
  579. *
  580. */
  581. xcb_xf86dri_create_context_cookie_t
  582. xcb_xf86dri_create_context (xcb_connection_t *c,
  583. uint32_t screen,
  584. uint32_t visual,
  585. uint32_t context);
  586. /**
  587. *
  588. * @param c The connection
  589. * @return A cookie
  590. *
  591. * Delivers a request to the X server.
  592. *
  593. * This form can be used only if the request will cause
  594. * a reply to be generated. Any returned error will be
  595. * placed in the event queue.
  596. */
  597. xcb_xf86dri_create_context_cookie_t
  598. xcb_xf86dri_create_context_unchecked (xcb_connection_t *c,
  599. uint32_t screen,
  600. uint32_t visual,
  601. uint32_t context);
  602. /**
  603. * Return the reply
  604. * @param c The connection
  605. * @param cookie The cookie
  606. * @param e The xcb_generic_error_t supplied
  607. *
  608. * Returns the reply of the request asked by
  609. *
  610. * The parameter @p e supplied to this function must be NULL if
  611. * xcb_xf86dri_create_context_unchecked(). is used.
  612. * Otherwise, it stores the error if any.
  613. *
  614. * The returned value must be freed by the caller using free().
  615. */
  616. xcb_xf86dri_create_context_reply_t *
  617. xcb_xf86dri_create_context_reply (xcb_connection_t *c,
  618. xcb_xf86dri_create_context_cookie_t cookie /**< */,
  619. xcb_generic_error_t **e);
  620. /**
  621. *
  622. * @param c The connection
  623. * @return A cookie
  624. *
  625. * Delivers a request to the X server.
  626. *
  627. * This form can be used only if the request will not cause
  628. * a reply to be generated. Any returned error will be
  629. * saved for handling by xcb_request_check().
  630. */
  631. xcb_void_cookie_t
  632. xcb_xf86dri_destroy_context_checked (xcb_connection_t *c,
  633. uint32_t screen,
  634. uint32_t context);
  635. /**
  636. *
  637. * @param c The connection
  638. * @return A cookie
  639. *
  640. * Delivers a request to the X server.
  641. *
  642. */
  643. xcb_void_cookie_t
  644. xcb_xf86dri_destroy_context (xcb_connection_t *c,
  645. uint32_t screen,
  646. uint32_t context);
  647. /**
  648. *
  649. * @param c The connection
  650. * @return A cookie
  651. *
  652. * Delivers a request to the X server.
  653. *
  654. */
  655. xcb_xf86dri_create_drawable_cookie_t
  656. xcb_xf86dri_create_drawable (xcb_connection_t *c,
  657. uint32_t screen,
  658. uint32_t drawable);
  659. /**
  660. *
  661. * @param c The connection
  662. * @return A cookie
  663. *
  664. * Delivers a request to the X server.
  665. *
  666. * This form can be used only if the request will cause
  667. * a reply to be generated. Any returned error will be
  668. * placed in the event queue.
  669. */
  670. xcb_xf86dri_create_drawable_cookie_t
  671. xcb_xf86dri_create_drawable_unchecked (xcb_connection_t *c,
  672. uint32_t screen,
  673. uint32_t drawable);
  674. /**
  675. * Return the reply
  676. * @param c The connection
  677. * @param cookie The cookie
  678. * @param e The xcb_generic_error_t supplied
  679. *
  680. * Returns the reply of the request asked by
  681. *
  682. * The parameter @p e supplied to this function must be NULL if
  683. * xcb_xf86dri_create_drawable_unchecked(). is used.
  684. * Otherwise, it stores the error if any.
  685. *
  686. * The returned value must be freed by the caller using free().
  687. */
  688. xcb_xf86dri_create_drawable_reply_t *
  689. xcb_xf86dri_create_drawable_reply (xcb_connection_t *c,
  690. xcb_xf86dri_create_drawable_cookie_t cookie /**< */,
  691. xcb_generic_error_t **e);
  692. /**
  693. *
  694. * @param c The connection
  695. * @return A cookie
  696. *
  697. * Delivers a request to the X server.
  698. *
  699. * This form can be used only if the request will not cause
  700. * a reply to be generated. Any returned error will be
  701. * saved for handling by xcb_request_check().
  702. */
  703. xcb_void_cookie_t
  704. xcb_xf86dri_destroy_drawable_checked (xcb_connection_t *c,
  705. uint32_t screen,
  706. uint32_t drawable);
  707. /**
  708. *
  709. * @param c The connection
  710. * @return A cookie
  711. *
  712. * Delivers a request to the X server.
  713. *
  714. */
  715. xcb_void_cookie_t
  716. xcb_xf86dri_destroy_drawable (xcb_connection_t *c,
  717. uint32_t screen,
  718. uint32_t drawable);
  719. int
  720. xcb_xf86dri_get_drawable_info_sizeof (const void *_buffer);
  721. /**
  722. *
  723. * @param c The connection
  724. * @return A cookie
  725. *
  726. * Delivers a request to the X server.
  727. *
  728. */
  729. xcb_xf86dri_get_drawable_info_cookie_t
  730. xcb_xf86dri_get_drawable_info (xcb_connection_t *c,
  731. uint32_t screen,
  732. uint32_t drawable);
  733. /**
  734. *
  735. * @param c The connection
  736. * @return A cookie
  737. *
  738. * Delivers a request to the X server.
  739. *
  740. * This form can be used only if the request will cause
  741. * a reply to be generated. Any returned error will be
  742. * placed in the event queue.
  743. */
  744. xcb_xf86dri_get_drawable_info_cookie_t
  745. xcb_xf86dri_get_drawable_info_unchecked (xcb_connection_t *c,
  746. uint32_t screen,
  747. uint32_t drawable);
  748. xcb_xf86dri_drm_clip_rect_t *
  749. xcb_xf86dri_get_drawable_info_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R);
  750. int
  751. xcb_xf86dri_get_drawable_info_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R);
  752. xcb_xf86dri_drm_clip_rect_iterator_t
  753. xcb_xf86dri_get_drawable_info_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R);
  754. xcb_xf86dri_drm_clip_rect_t *
  755. xcb_xf86dri_get_drawable_info_back_clip_rects (const xcb_xf86dri_get_drawable_info_reply_t *R);
  756. int
  757. xcb_xf86dri_get_drawable_info_back_clip_rects_length (const xcb_xf86dri_get_drawable_info_reply_t *R);
  758. xcb_xf86dri_drm_clip_rect_iterator_t
  759. xcb_xf86dri_get_drawable_info_back_clip_rects_iterator (const xcb_xf86dri_get_drawable_info_reply_t *R);
  760. /**
  761. * Return the reply
  762. * @param c The connection
  763. * @param cookie The cookie
  764. * @param e The xcb_generic_error_t supplied
  765. *
  766. * Returns the reply of the request asked by
  767. *
  768. * The parameter @p e supplied to this function must be NULL if
  769. * xcb_xf86dri_get_drawable_info_unchecked(). is used.
  770. * Otherwise, it stores the error if any.
  771. *
  772. * The returned value must be freed by the caller using free().
  773. */
  774. xcb_xf86dri_get_drawable_info_reply_t *
  775. xcb_xf86dri_get_drawable_info_reply (xcb_connection_t *c,
  776. xcb_xf86dri_get_drawable_info_cookie_t cookie /**< */,
  777. xcb_generic_error_t **e);
  778. int
  779. xcb_xf86dri_get_device_info_sizeof (const void *_buffer);
  780. /**
  781. *
  782. * @param c The connection
  783. * @return A cookie
  784. *
  785. * Delivers a request to the X server.
  786. *
  787. */
  788. xcb_xf86dri_get_device_info_cookie_t
  789. xcb_xf86dri_get_device_info (xcb_connection_t *c,
  790. uint32_t screen);
  791. /**
  792. *
  793. * @param c The connection
  794. * @return A cookie
  795. *
  796. * Delivers a request to the X server.
  797. *
  798. * This form can be used only if the request will cause
  799. * a reply to be generated. Any returned error will be
  800. * placed in the event queue.
  801. */
  802. xcb_xf86dri_get_device_info_cookie_t
  803. xcb_xf86dri_get_device_info_unchecked (xcb_connection_t *c,
  804. uint32_t screen);
  805. uint32_t *
  806. xcb_xf86dri_get_device_info_device_private (const xcb_xf86dri_get_device_info_reply_t *R);
  807. int
  808. xcb_xf86dri_get_device_info_device_private_length (const xcb_xf86dri_get_device_info_reply_t *R);
  809. xcb_generic_iterator_t
  810. xcb_xf86dri_get_device_info_device_private_end (const xcb_xf86dri_get_device_info_reply_t *R);
  811. /**
  812. * Return the reply
  813. * @param c The connection
  814. * @param cookie The cookie
  815. * @param e The xcb_generic_error_t supplied
  816. *
  817. * Returns the reply of the request asked by
  818. *
  819. * The parameter @p e supplied to this function must be NULL if
  820. * xcb_xf86dri_get_device_info_unchecked(). is used.
  821. * Otherwise, it stores the error if any.
  822. *
  823. * The returned value must be freed by the caller using free().
  824. */
  825. xcb_xf86dri_get_device_info_reply_t *
  826. xcb_xf86dri_get_device_info_reply (xcb_connection_t *c,
  827. xcb_xf86dri_get_device_info_cookie_t cookie /**< */,
  828. xcb_generic_error_t **e);
  829. /**
  830. *
  831. * @param c The connection
  832. * @return A cookie
  833. *
  834. * Delivers a request to the X server.
  835. *
  836. */
  837. xcb_xf86dri_auth_connection_cookie_t
  838. xcb_xf86dri_auth_connection (xcb_connection_t *c,
  839. uint32_t screen,
  840. uint32_t magic);
  841. /**
  842. *
  843. * @param c The connection
  844. * @return A cookie
  845. *
  846. * Delivers a request to the X server.
  847. *
  848. * This form can be used only if the request will cause
  849. * a reply to be generated. Any returned error will be
  850. * placed in the event queue.
  851. */
  852. xcb_xf86dri_auth_connection_cookie_t
  853. xcb_xf86dri_auth_connection_unchecked (xcb_connection_t *c,
  854. uint32_t screen,
  855. uint32_t magic);
  856. /**
  857. * Return the reply
  858. * @param c The connection
  859. * @param cookie The cookie
  860. * @param e The xcb_generic_error_t supplied
  861. *
  862. * Returns the reply of the request asked by
  863. *
  864. * The parameter @p e supplied to this function must be NULL if
  865. * xcb_xf86dri_auth_connection_unchecked(). is used.
  866. * Otherwise, it stores the error if any.
  867. *
  868. * The returned value must be freed by the caller using free().
  869. */
  870. xcb_xf86dri_auth_connection_reply_t *
  871. xcb_xf86dri_auth_connection_reply (xcb_connection_t *c,
  872. xcb_xf86dri_auth_connection_cookie_t cookie /**< */,
  873. xcb_generic_error_t **e);
  874. #ifdef __cplusplus
  875. }
  876. #endif
  877. #endif
  878. /**
  879. * @}
  880. */