dri3.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834
  1. /*
  2. * This file generated automatically from dri3.xml by c_client.py.
  3. * Edit at your peril.
  4. */
  5. /**
  6. * @defgroup XCB_DRI3_API XCB DRI3 API
  7. * @brief DRI3 XCB Protocol Implementation.
  8. * @{
  9. **/
  10. #ifndef __DRI3_H
  11. #define __DRI3_H
  12. #include "xcb.h"
  13. #include "xproto.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define XCB_DRI3_MAJOR_VERSION 1
  18. #define XCB_DRI3_MINOR_VERSION 2
  19. extern xcb_extension_t xcb_dri3_id;
  20. /**
  21. * @brief xcb_dri3_query_version_cookie_t
  22. **/
  23. typedef struct xcb_dri3_query_version_cookie_t {
  24. unsigned int sequence;
  25. } xcb_dri3_query_version_cookie_t;
  26. /** Opcode for xcb_dri3_query_version. */
  27. #define XCB_DRI3_QUERY_VERSION 0
  28. /**
  29. * @brief xcb_dri3_query_version_request_t
  30. **/
  31. typedef struct xcb_dri3_query_version_request_t {
  32. uint8_t major_opcode;
  33. uint8_t minor_opcode;
  34. uint16_t length;
  35. uint32_t major_version;
  36. uint32_t minor_version;
  37. } xcb_dri3_query_version_request_t;
  38. /**
  39. * @brief xcb_dri3_query_version_reply_t
  40. **/
  41. typedef struct xcb_dri3_query_version_reply_t {
  42. uint8_t response_type;
  43. uint8_t pad0;
  44. uint16_t sequence;
  45. uint32_t length;
  46. uint32_t major_version;
  47. uint32_t minor_version;
  48. } xcb_dri3_query_version_reply_t;
  49. /**
  50. * @brief xcb_dri3_open_cookie_t
  51. **/
  52. typedef struct xcb_dri3_open_cookie_t {
  53. unsigned int sequence;
  54. } xcb_dri3_open_cookie_t;
  55. /** Opcode for xcb_dri3_open. */
  56. #define XCB_DRI3_OPEN 1
  57. /**
  58. * @brief xcb_dri3_open_request_t
  59. **/
  60. typedef struct xcb_dri3_open_request_t {
  61. uint8_t major_opcode;
  62. uint8_t minor_opcode;
  63. uint16_t length;
  64. xcb_drawable_t drawable;
  65. uint32_t provider;
  66. } xcb_dri3_open_request_t;
  67. /**
  68. * @brief xcb_dri3_open_reply_t
  69. **/
  70. typedef struct xcb_dri3_open_reply_t {
  71. uint8_t response_type;
  72. uint8_t nfd;
  73. uint16_t sequence;
  74. uint32_t length;
  75. uint8_t pad0[24];
  76. } xcb_dri3_open_reply_t;
  77. /** Opcode for xcb_dri3_pixmap_from_buffer. */
  78. #define XCB_DRI3_PIXMAP_FROM_BUFFER 2
  79. /**
  80. * @brief xcb_dri3_pixmap_from_buffer_request_t
  81. **/
  82. typedef struct xcb_dri3_pixmap_from_buffer_request_t {
  83. uint8_t major_opcode;
  84. uint8_t minor_opcode;
  85. uint16_t length;
  86. xcb_pixmap_t pixmap;
  87. xcb_drawable_t drawable;
  88. uint32_t size;
  89. uint16_t width;
  90. uint16_t height;
  91. uint16_t stride;
  92. uint8_t depth;
  93. uint8_t bpp;
  94. } xcb_dri3_pixmap_from_buffer_request_t;
  95. /**
  96. * @brief xcb_dri3_buffer_from_pixmap_cookie_t
  97. **/
  98. typedef struct xcb_dri3_buffer_from_pixmap_cookie_t {
  99. unsigned int sequence;
  100. } xcb_dri3_buffer_from_pixmap_cookie_t;
  101. /** Opcode for xcb_dri3_buffer_from_pixmap. */
  102. #define XCB_DRI3_BUFFER_FROM_PIXMAP 3
  103. /**
  104. * @brief xcb_dri3_buffer_from_pixmap_request_t
  105. **/
  106. typedef struct xcb_dri3_buffer_from_pixmap_request_t {
  107. uint8_t major_opcode;
  108. uint8_t minor_opcode;
  109. uint16_t length;
  110. xcb_pixmap_t pixmap;
  111. } xcb_dri3_buffer_from_pixmap_request_t;
  112. /**
  113. * @brief xcb_dri3_buffer_from_pixmap_reply_t
  114. **/
  115. typedef struct xcb_dri3_buffer_from_pixmap_reply_t {
  116. uint8_t response_type;
  117. uint8_t nfd;
  118. uint16_t sequence;
  119. uint32_t length;
  120. uint32_t size;
  121. uint16_t width;
  122. uint16_t height;
  123. uint16_t stride;
  124. uint8_t depth;
  125. uint8_t bpp;
  126. uint8_t pad0[12];
  127. } xcb_dri3_buffer_from_pixmap_reply_t;
  128. /** Opcode for xcb_dri3_fence_from_fd. */
  129. #define XCB_DRI3_FENCE_FROM_FD 4
  130. /**
  131. * @brief xcb_dri3_fence_from_fd_request_t
  132. **/
  133. typedef struct xcb_dri3_fence_from_fd_request_t {
  134. uint8_t major_opcode;
  135. uint8_t minor_opcode;
  136. uint16_t length;
  137. xcb_drawable_t drawable;
  138. uint32_t fence;
  139. uint8_t initially_triggered;
  140. uint8_t pad0[3];
  141. } xcb_dri3_fence_from_fd_request_t;
  142. /**
  143. * @brief xcb_dri3_fd_from_fence_cookie_t
  144. **/
  145. typedef struct xcb_dri3_fd_from_fence_cookie_t {
  146. unsigned int sequence;
  147. } xcb_dri3_fd_from_fence_cookie_t;
  148. /** Opcode for xcb_dri3_fd_from_fence. */
  149. #define XCB_DRI3_FD_FROM_FENCE 5
  150. /**
  151. * @brief xcb_dri3_fd_from_fence_request_t
  152. **/
  153. typedef struct xcb_dri3_fd_from_fence_request_t {
  154. uint8_t major_opcode;
  155. uint8_t minor_opcode;
  156. uint16_t length;
  157. xcb_drawable_t drawable;
  158. uint32_t fence;
  159. } xcb_dri3_fd_from_fence_request_t;
  160. /**
  161. * @brief xcb_dri3_fd_from_fence_reply_t
  162. **/
  163. typedef struct xcb_dri3_fd_from_fence_reply_t {
  164. uint8_t response_type;
  165. uint8_t nfd;
  166. uint16_t sequence;
  167. uint32_t length;
  168. uint8_t pad0[24];
  169. } xcb_dri3_fd_from_fence_reply_t;
  170. /**
  171. * @brief xcb_dri3_get_supported_modifiers_cookie_t
  172. **/
  173. typedef struct xcb_dri3_get_supported_modifiers_cookie_t {
  174. unsigned int sequence;
  175. } xcb_dri3_get_supported_modifiers_cookie_t;
  176. /** Opcode for xcb_dri3_get_supported_modifiers. */
  177. #define XCB_DRI3_GET_SUPPORTED_MODIFIERS 6
  178. /**
  179. * @brief xcb_dri3_get_supported_modifiers_request_t
  180. **/
  181. typedef struct xcb_dri3_get_supported_modifiers_request_t {
  182. uint8_t major_opcode;
  183. uint8_t minor_opcode;
  184. uint16_t length;
  185. uint32_t window;
  186. uint8_t depth;
  187. uint8_t bpp;
  188. uint8_t pad0[2];
  189. } xcb_dri3_get_supported_modifiers_request_t;
  190. /**
  191. * @brief xcb_dri3_get_supported_modifiers_reply_t
  192. **/
  193. typedef struct xcb_dri3_get_supported_modifiers_reply_t {
  194. uint8_t response_type;
  195. uint8_t pad0;
  196. uint16_t sequence;
  197. uint32_t length;
  198. uint32_t num_window_modifiers;
  199. uint32_t num_screen_modifiers;
  200. uint8_t pad1[16];
  201. } xcb_dri3_get_supported_modifiers_reply_t;
  202. /** Opcode for xcb_dri3_pixmap_from_buffers. */
  203. #define XCB_DRI3_PIXMAP_FROM_BUFFERS 7
  204. /**
  205. * @brief xcb_dri3_pixmap_from_buffers_request_t
  206. **/
  207. typedef struct xcb_dri3_pixmap_from_buffers_request_t {
  208. uint8_t major_opcode;
  209. uint8_t minor_opcode;
  210. uint16_t length;
  211. xcb_pixmap_t pixmap;
  212. xcb_window_t window;
  213. uint8_t num_buffers;
  214. uint8_t pad0[3];
  215. uint16_t width;
  216. uint16_t height;
  217. uint32_t stride0;
  218. uint32_t offset0;
  219. uint32_t stride1;
  220. uint32_t offset1;
  221. uint32_t stride2;
  222. uint32_t offset2;
  223. uint32_t stride3;
  224. uint32_t offset3;
  225. uint8_t depth;
  226. uint8_t bpp;
  227. uint8_t pad1[2];
  228. uint64_t modifier;
  229. } xcb_dri3_pixmap_from_buffers_request_t;
  230. /**
  231. * @brief xcb_dri3_buffers_from_pixmap_cookie_t
  232. **/
  233. typedef struct xcb_dri3_buffers_from_pixmap_cookie_t {
  234. unsigned int sequence;
  235. } xcb_dri3_buffers_from_pixmap_cookie_t;
  236. /** Opcode for xcb_dri3_buffers_from_pixmap. */
  237. #define XCB_DRI3_BUFFERS_FROM_PIXMAP 8
  238. /**
  239. * @brief xcb_dri3_buffers_from_pixmap_request_t
  240. **/
  241. typedef struct xcb_dri3_buffers_from_pixmap_request_t {
  242. uint8_t major_opcode;
  243. uint8_t minor_opcode;
  244. uint16_t length;
  245. xcb_pixmap_t pixmap;
  246. } xcb_dri3_buffers_from_pixmap_request_t;
  247. /**
  248. * @brief xcb_dri3_buffers_from_pixmap_reply_t
  249. **/
  250. typedef struct xcb_dri3_buffers_from_pixmap_reply_t {
  251. uint8_t response_type;
  252. uint8_t nfd;
  253. uint16_t sequence;
  254. uint32_t length;
  255. uint16_t width;
  256. uint16_t height;
  257. uint8_t pad0[4];
  258. uint64_t modifier;
  259. uint8_t depth;
  260. uint8_t bpp;
  261. uint8_t pad1[6];
  262. } xcb_dri3_buffers_from_pixmap_reply_t;
  263. /**
  264. *
  265. * @param c The connection
  266. * @return A cookie
  267. *
  268. * Delivers a request to the X server.
  269. *
  270. */
  271. xcb_dri3_query_version_cookie_t
  272. xcb_dri3_query_version (xcb_connection_t *c,
  273. uint32_t major_version,
  274. uint32_t minor_version);
  275. /**
  276. *
  277. * @param c The connection
  278. * @return A cookie
  279. *
  280. * Delivers a request to the X server.
  281. *
  282. * This form can be used only if the request will cause
  283. * a reply to be generated. Any returned error will be
  284. * placed in the event queue.
  285. */
  286. xcb_dri3_query_version_cookie_t
  287. xcb_dri3_query_version_unchecked (xcb_connection_t *c,
  288. uint32_t major_version,
  289. uint32_t minor_version);
  290. /**
  291. * Return the reply
  292. * @param c The connection
  293. * @param cookie The cookie
  294. * @param e The xcb_generic_error_t supplied
  295. *
  296. * Returns the reply of the request asked by
  297. *
  298. * The parameter @p e supplied to this function must be NULL if
  299. * xcb_dri3_query_version_unchecked(). is used.
  300. * Otherwise, it stores the error if any.
  301. *
  302. * The returned value must be freed by the caller using free().
  303. */
  304. xcb_dri3_query_version_reply_t *
  305. xcb_dri3_query_version_reply (xcb_connection_t *c,
  306. xcb_dri3_query_version_cookie_t cookie /**< */,
  307. xcb_generic_error_t **e);
  308. /**
  309. *
  310. * @param c The connection
  311. * @return A cookie
  312. *
  313. * Delivers a request to the X server.
  314. *
  315. */
  316. xcb_dri3_open_cookie_t
  317. xcb_dri3_open (xcb_connection_t *c,
  318. xcb_drawable_t drawable,
  319. uint32_t provider);
  320. /**
  321. *
  322. * @param c The connection
  323. * @return A cookie
  324. *
  325. * Delivers a request to the X server.
  326. *
  327. * This form can be used only if the request will cause
  328. * a reply to be generated. Any returned error will be
  329. * placed in the event queue.
  330. */
  331. xcb_dri3_open_cookie_t
  332. xcb_dri3_open_unchecked (xcb_connection_t *c,
  333. xcb_drawable_t drawable,
  334. uint32_t provider);
  335. /**
  336. * Return the reply
  337. * @param c The connection
  338. * @param cookie The cookie
  339. * @param e The xcb_generic_error_t supplied
  340. *
  341. * Returns the reply of the request asked by
  342. *
  343. * The parameter @p e supplied to this function must be NULL if
  344. * xcb_dri3_open_unchecked(). is used.
  345. * Otherwise, it stores the error if any.
  346. *
  347. * The returned value must be freed by the caller using free().
  348. */
  349. xcb_dri3_open_reply_t *
  350. xcb_dri3_open_reply (xcb_connection_t *c,
  351. xcb_dri3_open_cookie_t cookie /**< */,
  352. xcb_generic_error_t **e);
  353. /**
  354. * Return the reply fds
  355. * @param c The connection
  356. * @param reply The reply
  357. *
  358. * Returns the array of reply fds of the request asked by
  359. *
  360. * The returned value must be freed by the caller using free().
  361. */
  362. int *
  363. xcb_dri3_open_reply_fds (xcb_connection_t *c /**< */,
  364. xcb_dri3_open_reply_t *reply);
  365. /**
  366. *
  367. * @param c The connection
  368. * @return A cookie
  369. *
  370. * Delivers a request to the X server.
  371. *
  372. * This form can be used only if the request will not cause
  373. * a reply to be generated. Any returned error will be
  374. * saved for handling by xcb_request_check().
  375. */
  376. xcb_void_cookie_t
  377. xcb_dri3_pixmap_from_buffer_checked (xcb_connection_t *c,
  378. xcb_pixmap_t pixmap,
  379. xcb_drawable_t drawable,
  380. uint32_t size,
  381. uint16_t width,
  382. uint16_t height,
  383. uint16_t stride,
  384. uint8_t depth,
  385. uint8_t bpp,
  386. int32_t pixmap_fd);
  387. /**
  388. *
  389. * @param c The connection
  390. * @return A cookie
  391. *
  392. * Delivers a request to the X server.
  393. *
  394. */
  395. xcb_void_cookie_t
  396. xcb_dri3_pixmap_from_buffer (xcb_connection_t *c,
  397. xcb_pixmap_t pixmap,
  398. xcb_drawable_t drawable,
  399. uint32_t size,
  400. uint16_t width,
  401. uint16_t height,
  402. uint16_t stride,
  403. uint8_t depth,
  404. uint8_t bpp,
  405. int32_t pixmap_fd);
  406. /**
  407. *
  408. * @param c The connection
  409. * @return A cookie
  410. *
  411. * Delivers a request to the X server.
  412. *
  413. */
  414. xcb_dri3_buffer_from_pixmap_cookie_t
  415. xcb_dri3_buffer_from_pixmap (xcb_connection_t *c,
  416. xcb_pixmap_t pixmap);
  417. /**
  418. *
  419. * @param c The connection
  420. * @return A cookie
  421. *
  422. * Delivers a request to the X server.
  423. *
  424. * This form can be used only if the request will cause
  425. * a reply to be generated. Any returned error will be
  426. * placed in the event queue.
  427. */
  428. xcb_dri3_buffer_from_pixmap_cookie_t
  429. xcb_dri3_buffer_from_pixmap_unchecked (xcb_connection_t *c,
  430. xcb_pixmap_t pixmap);
  431. /**
  432. * Return the reply
  433. * @param c The connection
  434. * @param cookie The cookie
  435. * @param e The xcb_generic_error_t supplied
  436. *
  437. * Returns the reply of the request asked by
  438. *
  439. * The parameter @p e supplied to this function must be NULL if
  440. * xcb_dri3_buffer_from_pixmap_unchecked(). is used.
  441. * Otherwise, it stores the error if any.
  442. *
  443. * The returned value must be freed by the caller using free().
  444. */
  445. xcb_dri3_buffer_from_pixmap_reply_t *
  446. xcb_dri3_buffer_from_pixmap_reply (xcb_connection_t *c,
  447. xcb_dri3_buffer_from_pixmap_cookie_t cookie /**< */,
  448. xcb_generic_error_t **e);
  449. /**
  450. * Return the reply fds
  451. * @param c The connection
  452. * @param reply The reply
  453. *
  454. * Returns the array of reply fds of the request asked by
  455. *
  456. * The returned value must be freed by the caller using free().
  457. */
  458. int *
  459. xcb_dri3_buffer_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
  460. xcb_dri3_buffer_from_pixmap_reply_t *reply);
  461. /**
  462. *
  463. * @param c The connection
  464. * @return A cookie
  465. *
  466. * Delivers a request to the X server.
  467. *
  468. * This form can be used only if the request will not cause
  469. * a reply to be generated. Any returned error will be
  470. * saved for handling by xcb_request_check().
  471. */
  472. xcb_void_cookie_t
  473. xcb_dri3_fence_from_fd_checked (xcb_connection_t *c,
  474. xcb_drawable_t drawable,
  475. uint32_t fence,
  476. uint8_t initially_triggered,
  477. int32_t fence_fd);
  478. /**
  479. *
  480. * @param c The connection
  481. * @return A cookie
  482. *
  483. * Delivers a request to the X server.
  484. *
  485. */
  486. xcb_void_cookie_t
  487. xcb_dri3_fence_from_fd (xcb_connection_t *c,
  488. xcb_drawable_t drawable,
  489. uint32_t fence,
  490. uint8_t initially_triggered,
  491. int32_t fence_fd);
  492. /**
  493. *
  494. * @param c The connection
  495. * @return A cookie
  496. *
  497. * Delivers a request to the X server.
  498. *
  499. */
  500. xcb_dri3_fd_from_fence_cookie_t
  501. xcb_dri3_fd_from_fence (xcb_connection_t *c,
  502. xcb_drawable_t drawable,
  503. uint32_t fence);
  504. /**
  505. *
  506. * @param c The connection
  507. * @return A cookie
  508. *
  509. * Delivers a request to the X server.
  510. *
  511. * This form can be used only if the request will cause
  512. * a reply to be generated. Any returned error will be
  513. * placed in the event queue.
  514. */
  515. xcb_dri3_fd_from_fence_cookie_t
  516. xcb_dri3_fd_from_fence_unchecked (xcb_connection_t *c,
  517. xcb_drawable_t drawable,
  518. uint32_t fence);
  519. /**
  520. * Return the reply
  521. * @param c The connection
  522. * @param cookie The cookie
  523. * @param e The xcb_generic_error_t supplied
  524. *
  525. * Returns the reply of the request asked by
  526. *
  527. * The parameter @p e supplied to this function must be NULL if
  528. * xcb_dri3_fd_from_fence_unchecked(). is used.
  529. * Otherwise, it stores the error if any.
  530. *
  531. * The returned value must be freed by the caller using free().
  532. */
  533. xcb_dri3_fd_from_fence_reply_t *
  534. xcb_dri3_fd_from_fence_reply (xcb_connection_t *c,
  535. xcb_dri3_fd_from_fence_cookie_t cookie /**< */,
  536. xcb_generic_error_t **e);
  537. /**
  538. * Return the reply fds
  539. * @param c The connection
  540. * @param reply The reply
  541. *
  542. * Returns the array of reply fds of the request asked by
  543. *
  544. * The returned value must be freed by the caller using free().
  545. */
  546. int *
  547. xcb_dri3_fd_from_fence_reply_fds (xcb_connection_t *c /**< */,
  548. xcb_dri3_fd_from_fence_reply_t *reply);
  549. int
  550. xcb_dri3_get_supported_modifiers_sizeof (const void *_buffer);
  551. /**
  552. *
  553. * @param c The connection
  554. * @return A cookie
  555. *
  556. * Delivers a request to the X server.
  557. *
  558. */
  559. xcb_dri3_get_supported_modifiers_cookie_t
  560. xcb_dri3_get_supported_modifiers (xcb_connection_t *c,
  561. uint32_t window,
  562. uint8_t depth,
  563. uint8_t bpp);
  564. /**
  565. *
  566. * @param c The connection
  567. * @return A cookie
  568. *
  569. * Delivers a request to the X server.
  570. *
  571. * This form can be used only if the request will cause
  572. * a reply to be generated. Any returned error will be
  573. * placed in the event queue.
  574. */
  575. xcb_dri3_get_supported_modifiers_cookie_t
  576. xcb_dri3_get_supported_modifiers_unchecked (xcb_connection_t *c,
  577. uint32_t window,
  578. uint8_t depth,
  579. uint8_t bpp);
  580. uint64_t *
  581. xcb_dri3_get_supported_modifiers_window_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
  582. int
  583. xcb_dri3_get_supported_modifiers_window_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
  584. xcb_generic_iterator_t
  585. xcb_dri3_get_supported_modifiers_window_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
  586. uint64_t *
  587. xcb_dri3_get_supported_modifiers_screen_modifiers (const xcb_dri3_get_supported_modifiers_reply_t *R);
  588. int
  589. xcb_dri3_get_supported_modifiers_screen_modifiers_length (const xcb_dri3_get_supported_modifiers_reply_t *R);
  590. xcb_generic_iterator_t
  591. xcb_dri3_get_supported_modifiers_screen_modifiers_end (const xcb_dri3_get_supported_modifiers_reply_t *R);
  592. /**
  593. * Return the reply
  594. * @param c The connection
  595. * @param cookie The cookie
  596. * @param e The xcb_generic_error_t supplied
  597. *
  598. * Returns the reply of the request asked by
  599. *
  600. * The parameter @p e supplied to this function must be NULL if
  601. * xcb_dri3_get_supported_modifiers_unchecked(). is used.
  602. * Otherwise, it stores the error if any.
  603. *
  604. * The returned value must be freed by the caller using free().
  605. */
  606. xcb_dri3_get_supported_modifiers_reply_t *
  607. xcb_dri3_get_supported_modifiers_reply (xcb_connection_t *c,
  608. xcb_dri3_get_supported_modifiers_cookie_t cookie /**< */,
  609. xcb_generic_error_t **e);
  610. /**
  611. *
  612. * @param c The connection
  613. * @return A cookie
  614. *
  615. * Delivers a request to the X server.
  616. *
  617. * This form can be used only if the request will not cause
  618. * a reply to be generated. Any returned error will be
  619. * saved for handling by xcb_request_check().
  620. */
  621. xcb_void_cookie_t
  622. xcb_dri3_pixmap_from_buffers_checked (xcb_connection_t *c,
  623. xcb_pixmap_t pixmap,
  624. xcb_window_t window,
  625. uint8_t num_buffers,
  626. uint16_t width,
  627. uint16_t height,
  628. uint32_t stride0,
  629. uint32_t offset0,
  630. uint32_t stride1,
  631. uint32_t offset1,
  632. uint32_t stride2,
  633. uint32_t offset2,
  634. uint32_t stride3,
  635. uint32_t offset3,
  636. uint8_t depth,
  637. uint8_t bpp,
  638. uint64_t modifier,
  639. const int32_t *buffers);
  640. /**
  641. *
  642. * @param c The connection
  643. * @return A cookie
  644. *
  645. * Delivers a request to the X server.
  646. *
  647. */
  648. xcb_void_cookie_t
  649. xcb_dri3_pixmap_from_buffers (xcb_connection_t *c,
  650. xcb_pixmap_t pixmap,
  651. xcb_window_t window,
  652. uint8_t num_buffers,
  653. uint16_t width,
  654. uint16_t height,
  655. uint32_t stride0,
  656. uint32_t offset0,
  657. uint32_t stride1,
  658. uint32_t offset1,
  659. uint32_t stride2,
  660. uint32_t offset2,
  661. uint32_t stride3,
  662. uint32_t offset3,
  663. uint8_t depth,
  664. uint8_t bpp,
  665. uint64_t modifier,
  666. const int32_t *buffers);
  667. int
  668. xcb_dri3_buffers_from_pixmap_sizeof (const void *_buffer,
  669. int32_t buffers);
  670. /**
  671. *
  672. * @param c The connection
  673. * @return A cookie
  674. *
  675. * Delivers a request to the X server.
  676. *
  677. */
  678. xcb_dri3_buffers_from_pixmap_cookie_t
  679. xcb_dri3_buffers_from_pixmap (xcb_connection_t *c,
  680. xcb_pixmap_t pixmap);
  681. /**
  682. *
  683. * @param c The connection
  684. * @return A cookie
  685. *
  686. * Delivers a request to the X server.
  687. *
  688. * This form can be used only if the request will cause
  689. * a reply to be generated. Any returned error will be
  690. * placed in the event queue.
  691. */
  692. xcb_dri3_buffers_from_pixmap_cookie_t
  693. xcb_dri3_buffers_from_pixmap_unchecked (xcb_connection_t *c,
  694. xcb_pixmap_t pixmap);
  695. uint32_t *
  696. xcb_dri3_buffers_from_pixmap_strides (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  697. int
  698. xcb_dri3_buffers_from_pixmap_strides_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  699. xcb_generic_iterator_t
  700. xcb_dri3_buffers_from_pixmap_strides_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  701. uint32_t *
  702. xcb_dri3_buffers_from_pixmap_offsets (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  703. int
  704. xcb_dri3_buffers_from_pixmap_offsets_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  705. xcb_generic_iterator_t
  706. xcb_dri3_buffers_from_pixmap_offsets_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  707. int32_t *
  708. xcb_dri3_buffers_from_pixmap_buffers (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  709. int
  710. xcb_dri3_buffers_from_pixmap_buffers_length (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  711. xcb_generic_iterator_t
  712. xcb_dri3_buffers_from_pixmap_buffers_end (const xcb_dri3_buffers_from_pixmap_reply_t *R);
  713. /**
  714. * Return the reply
  715. * @param c The connection
  716. * @param cookie The cookie
  717. * @param e The xcb_generic_error_t supplied
  718. *
  719. * Returns the reply of the request asked by
  720. *
  721. * The parameter @p e supplied to this function must be NULL if
  722. * xcb_dri3_buffers_from_pixmap_unchecked(). is used.
  723. * Otherwise, it stores the error if any.
  724. *
  725. * The returned value must be freed by the caller using free().
  726. */
  727. xcb_dri3_buffers_from_pixmap_reply_t *
  728. xcb_dri3_buffers_from_pixmap_reply (xcb_connection_t *c,
  729. xcb_dri3_buffers_from_pixmap_cookie_t cookie /**< */,
  730. xcb_generic_error_t **e);
  731. /**
  732. * Return the reply fds
  733. * @param c The connection
  734. * @param reply The reply
  735. *
  736. * Returns the array of reply fds of the request asked by
  737. *
  738. * The returned value must be freed by the caller using free().
  739. */
  740. int *
  741. xcb_dri3_buffers_from_pixmap_reply_fds (xcb_connection_t *c /**< */,
  742. xcb_dri3_buffers_from_pixmap_reply_t *reply);
  743. #ifdef __cplusplus
  744. }
  745. #endif
  746. #endif
  747. /**
  748. * @}
  749. */