xref: /netbsd-src/external/mit/xorg/lib/libxcb/files/present.h (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1 /*
2  * This file generated automatically from present.xml by c_client.py.
3  * Edit at your peril.
4  */
5 
6 /**
7  * @defgroup XCB_Present_API XCB Present API
8  * @brief Present XCB Protocol Implementation.
9  * @{
10  **/
11 
12 #ifndef __PRESENT_H
13 #define __PRESENT_H
14 
15 #include "xcb.h"
16 #include "xproto.h"
17 #include "render.h"
18 #include "randr.h"
19 #include "shape.h"
20 #include "xfixes.h"
21 #include "sync.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #define XCB_PRESENT_MAJOR_VERSION 1
28 #define XCB_PRESENT_MINOR_VERSION 0
29 
30 extern xcb_extension_t xcb_present_id;
31 
32 typedef enum xcb_present_event_enum_t {
33     XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0,
34     XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,
35     XCB_PRESENT_EVENT_IDLE_NOTIFY = 2,
36     XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3
37 } xcb_present_event_enum_t;
38 
39 typedef enum xcb_present_event_mask_t {
40     XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,
41     XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
42     XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
43     XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
44     XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8
45 } xcb_present_event_mask_t;
46 
47 typedef enum xcb_present_option_t {
48     XCB_PRESENT_OPTION_NONE = 0,
49     XCB_PRESENT_OPTION_ASYNC = 1,
50     XCB_PRESENT_OPTION_COPY = 2,
51     XCB_PRESENT_OPTION_UST = 4
52 } xcb_present_option_t;
53 
54 typedef enum xcb_present_capability_t {
55     XCB_PRESENT_CAPABILITY_NONE = 0,
56     XCB_PRESENT_CAPABILITY_ASYNC = 1,
57     XCB_PRESENT_CAPABILITY_FENCE = 2,
58     XCB_PRESENT_CAPABILITY_UST = 4
59 } xcb_present_capability_t;
60 
61 typedef enum xcb_present_complete_kind_t {
62     XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0,
63     XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1
64 } xcb_present_complete_kind_t;
65 
66 typedef enum xcb_present_complete_mode_t {
67     XCB_PRESENT_COMPLETE_MODE_COPY = 0,
68     XCB_PRESENT_COMPLETE_MODE_FLIP = 1,
69     XCB_PRESENT_COMPLETE_MODE_SKIP = 2
70 } xcb_present_complete_mode_t;
71 
72 /**
73  * @brief xcb_present_notify_t
74  **/
75 typedef struct xcb_present_notify_t {
76     xcb_window_t window; /**<  */
77     uint32_t     serial; /**<  */
78 } xcb_present_notify_t;
79 
80 /**
81  * @brief xcb_present_notify_iterator_t
82  **/
83 typedef struct xcb_present_notify_iterator_t {
84     xcb_present_notify_t *data; /**<  */
85     int                   rem; /**<  */
86     int                   index; /**<  */
87 } xcb_present_notify_iterator_t;
88 
89 /**
90  * @brief xcb_present_query_version_cookie_t
91  **/
92 typedef struct xcb_present_query_version_cookie_t {
93     unsigned int sequence; /**<  */
94 } xcb_present_query_version_cookie_t;
95 
96 /** Opcode for xcb_present_query_version. */
97 #define XCB_PRESENT_QUERY_VERSION 0
98 
99 /**
100  * @brief xcb_present_query_version_request_t
101  **/
102 typedef struct xcb_present_query_version_request_t {
103     uint8_t  major_opcode; /**<  */
104     uint8_t  minor_opcode; /**<  */
105     uint16_t length; /**<  */
106     uint32_t major_version; /**<  */
107     uint32_t minor_version; /**<  */
108 } xcb_present_query_version_request_t;
109 
110 /**
111  * @brief xcb_present_query_version_reply_t
112  **/
113 typedef struct xcb_present_query_version_reply_t {
114     uint8_t  response_type; /**<  */
115     uint8_t  pad0; /**<  */
116     uint16_t sequence; /**<  */
117     uint32_t length; /**<  */
118     uint32_t major_version; /**<  */
119     uint32_t minor_version; /**<  */
120 } xcb_present_query_version_reply_t;
121 
122 /** Opcode for xcb_present_pixmap. */
123 #define XCB_PRESENT_PIXMAP 1
124 
125 /**
126  * @brief xcb_present_pixmap_request_t
127  **/
128 typedef struct xcb_present_pixmap_request_t {
129     uint8_t             major_opcode; /**<  */
130     uint8_t             minor_opcode; /**<  */
131     uint16_t            length; /**<  */
132     xcb_window_t        window; /**<  */
133     xcb_pixmap_t        pixmap; /**<  */
134     uint32_t            serial; /**<  */
135     xcb_xfixes_region_t valid; /**<  */
136     xcb_xfixes_region_t update; /**<  */
137     int16_t             x_off; /**<  */
138     int16_t             y_off; /**<  */
139     xcb_randr_crtc_t    target_crtc; /**<  */
140     xcb_sync_fence_t    wait_fence; /**<  */
141     xcb_sync_fence_t    idle_fence; /**<  */
142     uint32_t            options; /**<  */
143     uint8_t             pad0[4]; /**<  */
144     uint64_t            target_msc; /**<  */
145     uint64_t            divisor; /**<  */
146     uint64_t            remainder; /**<  */
147 } xcb_present_pixmap_request_t;
148 
149 /** Opcode for xcb_present_notify_msc. */
150 #define XCB_PRESENT_NOTIFY_MSC 2
151 
152 /**
153  * @brief xcb_present_notify_msc_request_t
154  **/
155 typedef struct xcb_present_notify_msc_request_t {
156     uint8_t      major_opcode; /**<  */
157     uint8_t      minor_opcode; /**<  */
158     uint16_t     length; /**<  */
159     xcb_window_t window; /**<  */
160     uint32_t     serial; /**<  */
161     uint8_t      pad0[4]; /**<  */
162     uint64_t     target_msc; /**<  */
163     uint64_t     divisor; /**<  */
164     uint64_t     remainder; /**<  */
165 } xcb_present_notify_msc_request_t;
166 
167 typedef uint32_t xcb_present_event_t;
168 
169 /**
170  * @brief xcb_present_event_iterator_t
171  **/
172 typedef struct xcb_present_event_iterator_t {
173     xcb_present_event_t *data; /**<  */
174     int                  rem; /**<  */
175     int                  index; /**<  */
176 } xcb_present_event_iterator_t;
177 
178 /** Opcode for xcb_present_select_input. */
179 #define XCB_PRESENT_SELECT_INPUT 3
180 
181 /**
182  * @brief xcb_present_select_input_request_t
183  **/
184 typedef struct xcb_present_select_input_request_t {
185     uint8_t             major_opcode; /**<  */
186     uint8_t             minor_opcode; /**<  */
187     uint16_t            length; /**<  */
188     xcb_present_event_t eid; /**<  */
189     xcb_window_t        window; /**<  */
190     uint32_t            event_mask; /**<  */
191 } xcb_present_select_input_request_t;
192 
193 /**
194  * @brief xcb_present_query_capabilities_cookie_t
195  **/
196 typedef struct xcb_present_query_capabilities_cookie_t {
197     unsigned int sequence; /**<  */
198 } xcb_present_query_capabilities_cookie_t;
199 
200 /** Opcode for xcb_present_query_capabilities. */
201 #define XCB_PRESENT_QUERY_CAPABILITIES 4
202 
203 /**
204  * @brief xcb_present_query_capabilities_request_t
205  **/
206 typedef struct xcb_present_query_capabilities_request_t {
207     uint8_t  major_opcode; /**<  */
208     uint8_t  minor_opcode; /**<  */
209     uint16_t length; /**<  */
210     uint32_t target; /**<  */
211 } xcb_present_query_capabilities_request_t;
212 
213 /**
214  * @brief xcb_present_query_capabilities_reply_t
215  **/
216 typedef struct xcb_present_query_capabilities_reply_t {
217     uint8_t  response_type; /**<  */
218     uint8_t  pad0; /**<  */
219     uint16_t sequence; /**<  */
220     uint32_t length; /**<  */
221     uint32_t capabilities; /**<  */
222 } xcb_present_query_capabilities_reply_t;
223 
224 /** Opcode for xcb_present_generic. */
225 #define XCB_PRESENT_GENERIC 0
226 
227 /**
228  * @brief xcb_present_generic_event_t
229  **/
230 typedef struct xcb_present_generic_event_t {
231     uint8_t             response_type; /**<  */
232     uint8_t             extension; /**<  */
233     uint16_t            sequence; /**<  */
234     uint32_t            length; /**<  */
235     uint16_t            evtype; /**<  */
236     uint8_t             pad0[2]; /**<  */
237     xcb_present_event_t event; /**<  */
238 } xcb_present_generic_event_t;
239 
240 /** Opcode for xcb_present_configure_notify. */
241 #define XCB_PRESENT_CONFIGURE_NOTIFY 0
242 
243 /**
244  * @brief xcb_present_configure_notify_event_t
245  **/
246 typedef struct xcb_present_configure_notify_event_t {
247     uint8_t             response_type; /**<  */
248     uint8_t             extension; /**<  */
249     uint16_t            sequence; /**<  */
250     uint32_t            length; /**<  */
251     uint16_t            event_type; /**<  */
252     uint8_t             pad0[2]; /**<  */
253     xcb_present_event_t event; /**<  */
254     xcb_window_t        window; /**<  */
255     int16_t             x; /**<  */
256     int16_t             y; /**<  */
257     uint16_t            width; /**<  */
258     uint16_t            height; /**<  */
259     int16_t             off_x; /**<  */
260     int16_t             off_y; /**<  */
261     uint32_t            full_sequence; /**<  */
262     uint16_t            pixmap_width; /**<  */
263     uint16_t            pixmap_height; /**<  */
264     uint32_t            pixmap_flags; /**<  */
265 } xcb_present_configure_notify_event_t;
266 
267 /** Opcode for xcb_present_complete_notify. */
268 #define XCB_PRESENT_COMPLETE_NOTIFY 1
269 
270 /**
271  * @brief xcb_present_complete_notify_event_t
272  **/
273 typedef struct xcb_present_complete_notify_event_t {
274     uint8_t             response_type; /**<  */
275     uint8_t             extension; /**<  */
276     uint16_t            sequence; /**<  */
277     uint32_t            length; /**<  */
278     uint16_t            event_type; /**<  */
279     uint8_t             kind; /**<  */
280     uint8_t             mode; /**<  */
281     xcb_present_event_t event; /**<  */
282     xcb_window_t        window; /**<  */
283     uint32_t            serial; /**<  */
284     uint64_t            ust; /**<  */
285     uint32_t            full_sequence; /**<  */
286     uint64_t            msc; /**<  */
287 } xcb_present_complete_notify_event_t;
288 
289 /** Opcode for xcb_present_idle_notify. */
290 #define XCB_PRESENT_IDLE_NOTIFY 2
291 
292 /**
293  * @brief xcb_present_idle_notify_event_t
294  **/
295 typedef struct xcb_present_idle_notify_event_t {
296     uint8_t             response_type; /**<  */
297     uint8_t             extension; /**<  */
298     uint16_t            sequence; /**<  */
299     uint32_t            length; /**<  */
300     uint16_t            event_type; /**<  */
301     uint8_t             pad0[2]; /**<  */
302     xcb_present_event_t event; /**<  */
303     xcb_window_t        window; /**<  */
304     uint32_t            serial; /**<  */
305     xcb_pixmap_t        pixmap; /**<  */
306     xcb_sync_fence_t    idle_fence; /**<  */
307     uint32_t            full_sequence; /**<  */
308 } xcb_present_idle_notify_event_t;
309 
310 /** Opcode for xcb_present_redirect_notify. */
311 #define XCB_PRESENT_REDIRECT_NOTIFY 3
312 
313 /**
314  * @brief xcb_present_redirect_notify_event_t
315  **/
316 typedef struct xcb_present_redirect_notify_event_t {
317     uint8_t             response_type; /**<  */
318     uint8_t             extension; /**<  */
319     uint16_t            sequence; /**<  */
320     uint32_t            length; /**<  */
321     uint16_t            event_type; /**<  */
322     uint8_t             update_window; /**<  */
323     uint8_t             pad0; /**<  */
324     xcb_present_event_t event; /**<  */
325     xcb_window_t        event_window; /**<  */
326     xcb_window_t        window; /**<  */
327     xcb_pixmap_t        pixmap; /**<  */
328     uint32_t            serial; /**<  */
329     uint32_t            full_sequence; /**<  */
330     xcb_xfixes_region_t valid_region; /**<  */
331     xcb_xfixes_region_t update_region; /**<  */
332     xcb_rectangle_t     valid_rect; /**<  */
333     xcb_rectangle_t     update_rect; /**<  */
334     int16_t             x_off; /**<  */
335     int16_t             y_off; /**<  */
336     xcb_randr_crtc_t    target_crtc; /**<  */
337     xcb_sync_fence_t    wait_fence; /**<  */
338     xcb_sync_fence_t    idle_fence; /**<  */
339     uint32_t            options; /**<  */
340     uint8_t             pad1[4]; /**<  */
341     uint64_t            target_msc; /**<  */
342     uint64_t            divisor; /**<  */
343     uint64_t            remainder; /**<  */
344 } xcb_present_redirect_notify_event_t;
345 
346 /**
347  * Get the next element of the iterator
348  * @param i Pointer to a xcb_present_notify_iterator_t
349  *
350  * Get the next element in the iterator. The member rem is
351  * decreased by one. The member data points to the next
352  * element. The member index is increased by sizeof(xcb_present_notify_t)
353  */
354 
355 /*****************************************************************************
356  **
357  ** void xcb_present_notify_next
358  **
359  ** @param xcb_present_notify_iterator_t *i
360  ** @returns void
361  **
362  *****************************************************************************/
363 
364 void
365 xcb_present_notify_next (xcb_present_notify_iterator_t *i  /**< */);
366 
367 /**
368  * Return the iterator pointing to the last element
369  * @param i An xcb_present_notify_iterator_t
370  * @return  The iterator pointing to the last element
371  *
372  * Set the current element in the iterator to the last element.
373  * The member rem is set to 0. The member data points to the
374  * last element.
375  */
376 
377 /*****************************************************************************
378  **
379  ** xcb_generic_iterator_t xcb_present_notify_end
380  **
381  ** @param xcb_present_notify_iterator_t i
382  ** @returns xcb_generic_iterator_t
383  **
384  *****************************************************************************/
385 
386 xcb_generic_iterator_t
387 xcb_present_notify_end (xcb_present_notify_iterator_t i  /**< */);
388 
389 /**
390  *
391  * @param c The connection
392  * @return A cookie
393  *
394  * Delivers a request to the X server.
395  *
396  */
397 
398 /*****************************************************************************
399  **
400  ** xcb_present_query_version_cookie_t xcb_present_query_version
401  **
402  ** @param xcb_connection_t *c
403  ** @param uint32_t          major_version
404  ** @param uint32_t          minor_version
405  ** @returns xcb_present_query_version_cookie_t
406  **
407  *****************************************************************************/
408 
409 xcb_present_query_version_cookie_t
410 xcb_present_query_version (xcb_connection_t *c  /**< */,
411                            uint32_t          major_version  /**< */,
412                            uint32_t          minor_version  /**< */);
413 
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 
426 /*****************************************************************************
427  **
428  ** xcb_present_query_version_cookie_t xcb_present_query_version_unchecked
429  **
430  ** @param xcb_connection_t *c
431  ** @param uint32_t          major_version
432  ** @param uint32_t          minor_version
433  ** @returns xcb_present_query_version_cookie_t
434  **
435  *****************************************************************************/
436 
437 xcb_present_query_version_cookie_t
438 xcb_present_query_version_unchecked (xcb_connection_t *c  /**< */,
439                                      uint32_t          major_version  /**< */,
440                                      uint32_t          minor_version  /**< */);
441 
442 /**
443  * Return the reply
444  * @param c      The connection
445  * @param cookie The cookie
446  * @param e      The xcb_generic_error_t supplied
447  *
448  * Returns the reply of the request asked by
449  *
450  * The parameter @p e supplied to this function must be NULL if
451  * xcb_present_query_version_unchecked(). is used.
452  * Otherwise, it stores the error if any.
453  *
454  * The returned value must be freed by the caller using free().
455  */
456 
457 /*****************************************************************************
458  **
459  ** xcb_present_query_version_reply_t * xcb_present_query_version_reply
460  **
461  ** @param xcb_connection_t                    *c
462  ** @param xcb_present_query_version_cookie_t   cookie
463  ** @param xcb_generic_error_t                **e
464  ** @returns xcb_present_query_version_reply_t *
465  **
466  *****************************************************************************/
467 
468 xcb_present_query_version_reply_t *
469 xcb_present_query_version_reply (xcb_connection_t                    *c  /**< */,
470                                  xcb_present_query_version_cookie_t   cookie  /**< */,
471                                  xcb_generic_error_t                **e  /**< */);
472 
473 int
474 xcb_present_pixmap_sizeof (const void  *_buffer  /**< */,
475                            uint32_t     notifies_len  /**< */);
476 
477 /**
478  *
479  * @param c The connection
480  * @return A cookie
481  *
482  * Delivers a request to the X server.
483  *
484  * This form can be used only if the request will not cause
485  * a reply to be generated. Any returned error will be
486  * saved for handling by xcb_request_check().
487  */
488 
489 /*****************************************************************************
490  **
491  ** xcb_void_cookie_t xcb_present_pixmap_checked
492  **
493  ** @param xcb_connection_t           *c
494  ** @param xcb_window_t                window
495  ** @param xcb_pixmap_t                pixmap
496  ** @param uint32_t                    serial
497  ** @param xcb_xfixes_region_t         valid
498  ** @param xcb_xfixes_region_t         update
499  ** @param int16_t                     x_off
500  ** @param int16_t                     y_off
501  ** @param xcb_randr_crtc_t            target_crtc
502  ** @param xcb_sync_fence_t            wait_fence
503  ** @param xcb_sync_fence_t            idle_fence
504  ** @param uint32_t                    options
505  ** @param uint64_t                    target_msc
506  ** @param uint64_t                    divisor
507  ** @param uint64_t                    remainder
508  ** @param uint32_t                    notifies_len
509  ** @param const xcb_present_notify_t *notifies
510  ** @returns xcb_void_cookie_t
511  **
512  *****************************************************************************/
513 
514 xcb_void_cookie_t
515 xcb_present_pixmap_checked (xcb_connection_t           *c  /**< */,
516                             xcb_window_t                window  /**< */,
517                             xcb_pixmap_t                pixmap  /**< */,
518                             uint32_t                    serial  /**< */,
519                             xcb_xfixes_region_t         valid  /**< */,
520                             xcb_xfixes_region_t         update  /**< */,
521                             int16_t                     x_off  /**< */,
522                             int16_t                     y_off  /**< */,
523                             xcb_randr_crtc_t            target_crtc  /**< */,
524                             xcb_sync_fence_t            wait_fence  /**< */,
525                             xcb_sync_fence_t            idle_fence  /**< */,
526                             uint32_t                    options  /**< */,
527                             uint64_t                    target_msc  /**< */,
528                             uint64_t                    divisor  /**< */,
529                             uint64_t                    remainder  /**< */,
530                             uint32_t                    notifies_len  /**< */,
531                             const xcb_present_notify_t *notifies  /**< */);
532 
533 /**
534  *
535  * @param c The connection
536  * @return A cookie
537  *
538  * Delivers a request to the X server.
539  *
540  */
541 
542 /*****************************************************************************
543  **
544  ** xcb_void_cookie_t xcb_present_pixmap
545  **
546  ** @param xcb_connection_t           *c
547  ** @param xcb_window_t                window
548  ** @param xcb_pixmap_t                pixmap
549  ** @param uint32_t                    serial
550  ** @param xcb_xfixes_region_t         valid
551  ** @param xcb_xfixes_region_t         update
552  ** @param int16_t                     x_off
553  ** @param int16_t                     y_off
554  ** @param xcb_randr_crtc_t            target_crtc
555  ** @param xcb_sync_fence_t            wait_fence
556  ** @param xcb_sync_fence_t            idle_fence
557  ** @param uint32_t                    options
558  ** @param uint64_t                    target_msc
559  ** @param uint64_t                    divisor
560  ** @param uint64_t                    remainder
561  ** @param uint32_t                    notifies_len
562  ** @param const xcb_present_notify_t *notifies
563  ** @returns xcb_void_cookie_t
564  **
565  *****************************************************************************/
566 
567 xcb_void_cookie_t
568 xcb_present_pixmap (xcb_connection_t           *c  /**< */,
569                     xcb_window_t                window  /**< */,
570                     xcb_pixmap_t                pixmap  /**< */,
571                     uint32_t                    serial  /**< */,
572                     xcb_xfixes_region_t         valid  /**< */,
573                     xcb_xfixes_region_t         update  /**< */,
574                     int16_t                     x_off  /**< */,
575                     int16_t                     y_off  /**< */,
576                     xcb_randr_crtc_t            target_crtc  /**< */,
577                     xcb_sync_fence_t            wait_fence  /**< */,
578                     xcb_sync_fence_t            idle_fence  /**< */,
579                     uint32_t                    options  /**< */,
580                     uint64_t                    target_msc  /**< */,
581                     uint64_t                    divisor  /**< */,
582                     uint64_t                    remainder  /**< */,
583                     uint32_t                    notifies_len  /**< */,
584                     const xcb_present_notify_t *notifies  /**< */);
585 
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 not cause
594  * a reply to be generated. Any returned error will be
595  * saved for handling by xcb_request_check().
596  */
597 
598 /*****************************************************************************
599  **
600  ** xcb_void_cookie_t xcb_present_notify_msc_checked
601  **
602  ** @param xcb_connection_t *c
603  ** @param xcb_window_t      window
604  ** @param uint32_t          serial
605  ** @param uint64_t          target_msc
606  ** @param uint64_t          divisor
607  ** @param uint64_t          remainder
608  ** @returns xcb_void_cookie_t
609  **
610  *****************************************************************************/
611 
612 xcb_void_cookie_t
613 xcb_present_notify_msc_checked (xcb_connection_t *c  /**< */,
614                                 xcb_window_t      window  /**< */,
615                                 uint32_t          serial  /**< */,
616                                 uint64_t          target_msc  /**< */,
617                                 uint64_t          divisor  /**< */,
618                                 uint64_t          remainder  /**< */);
619 
620 /**
621  *
622  * @param c The connection
623  * @return A cookie
624  *
625  * Delivers a request to the X server.
626  *
627  */
628 
629 /*****************************************************************************
630  **
631  ** xcb_void_cookie_t xcb_present_notify_msc
632  **
633  ** @param xcb_connection_t *c
634  ** @param xcb_window_t      window
635  ** @param uint32_t          serial
636  ** @param uint64_t          target_msc
637  ** @param uint64_t          divisor
638  ** @param uint64_t          remainder
639  ** @returns xcb_void_cookie_t
640  **
641  *****************************************************************************/
642 
643 xcb_void_cookie_t
644 xcb_present_notify_msc (xcb_connection_t *c  /**< */,
645                         xcb_window_t      window  /**< */,
646                         uint32_t          serial  /**< */,
647                         uint64_t          target_msc  /**< */,
648                         uint64_t          divisor  /**< */,
649                         uint64_t          remainder  /**< */);
650 
651 /**
652  * Get the next element of the iterator
653  * @param i Pointer to a xcb_present_event_iterator_t
654  *
655  * Get the next element in the iterator. The member rem is
656  * decreased by one. The member data points to the next
657  * element. The member index is increased by sizeof(xcb_present_event_t)
658  */
659 
660 /*****************************************************************************
661  **
662  ** void xcb_present_event_next
663  **
664  ** @param xcb_present_event_iterator_t *i
665  ** @returns void
666  **
667  *****************************************************************************/
668 
669 void
670 xcb_present_event_next (xcb_present_event_iterator_t *i  /**< */);
671 
672 /**
673  * Return the iterator pointing to the last element
674  * @param i An xcb_present_event_iterator_t
675  * @return  The iterator pointing to the last element
676  *
677  * Set the current element in the iterator to the last element.
678  * The member rem is set to 0. The member data points to the
679  * last element.
680  */
681 
682 /*****************************************************************************
683  **
684  ** xcb_generic_iterator_t xcb_present_event_end
685  **
686  ** @param xcb_present_event_iterator_t i
687  ** @returns xcb_generic_iterator_t
688  **
689  *****************************************************************************/
690 
691 xcb_generic_iterator_t
692 xcb_present_event_end (xcb_present_event_iterator_t i  /**< */);
693 
694 /**
695  *
696  * @param c The connection
697  * @return A cookie
698  *
699  * Delivers a request to the X server.
700  *
701  * This form can be used only if the request will not cause
702  * a reply to be generated. Any returned error will be
703  * saved for handling by xcb_request_check().
704  */
705 
706 /*****************************************************************************
707  **
708  ** xcb_void_cookie_t xcb_present_select_input_checked
709  **
710  ** @param xcb_connection_t    *c
711  ** @param xcb_present_event_t  eid
712  ** @param xcb_window_t         window
713  ** @param uint32_t             event_mask
714  ** @returns xcb_void_cookie_t
715  **
716  *****************************************************************************/
717 
718 xcb_void_cookie_t
719 xcb_present_select_input_checked (xcb_connection_t    *c  /**< */,
720                                   xcb_present_event_t  eid  /**< */,
721                                   xcb_window_t         window  /**< */,
722                                   uint32_t             event_mask  /**< */);
723 
724 /**
725  *
726  * @param c The connection
727  * @return A cookie
728  *
729  * Delivers a request to the X server.
730  *
731  */
732 
733 /*****************************************************************************
734  **
735  ** xcb_void_cookie_t xcb_present_select_input
736  **
737  ** @param xcb_connection_t    *c
738  ** @param xcb_present_event_t  eid
739  ** @param xcb_window_t         window
740  ** @param uint32_t             event_mask
741  ** @returns xcb_void_cookie_t
742  **
743  *****************************************************************************/
744 
745 xcb_void_cookie_t
746 xcb_present_select_input (xcb_connection_t    *c  /**< */,
747                           xcb_present_event_t  eid  /**< */,
748                           xcb_window_t         window  /**< */,
749                           uint32_t             event_mask  /**< */);
750 
751 /**
752  *
753  * @param c The connection
754  * @return A cookie
755  *
756  * Delivers a request to the X server.
757  *
758  */
759 
760 /*****************************************************************************
761  **
762  ** xcb_present_query_capabilities_cookie_t xcb_present_query_capabilities
763  **
764  ** @param xcb_connection_t *c
765  ** @param uint32_t          target
766  ** @returns xcb_present_query_capabilities_cookie_t
767  **
768  *****************************************************************************/
769 
770 xcb_present_query_capabilities_cookie_t
771 xcb_present_query_capabilities (xcb_connection_t *c  /**< */,
772                                 uint32_t          target  /**< */);
773 
774 /**
775  *
776  * @param c The connection
777  * @return A cookie
778  *
779  * Delivers a request to the X server.
780  *
781  * This form can be used only if the request will cause
782  * a reply to be generated. Any returned error will be
783  * placed in the event queue.
784  */
785 
786 /*****************************************************************************
787  **
788  ** xcb_present_query_capabilities_cookie_t xcb_present_query_capabilities_unchecked
789  **
790  ** @param xcb_connection_t *c
791  ** @param uint32_t          target
792  ** @returns xcb_present_query_capabilities_cookie_t
793  **
794  *****************************************************************************/
795 
796 xcb_present_query_capabilities_cookie_t
797 xcb_present_query_capabilities_unchecked (xcb_connection_t *c  /**< */,
798                                           uint32_t          target  /**< */);
799 
800 /**
801  * Return the reply
802  * @param c      The connection
803  * @param cookie The cookie
804  * @param e      The xcb_generic_error_t supplied
805  *
806  * Returns the reply of the request asked by
807  *
808  * The parameter @p e supplied to this function must be NULL if
809  * xcb_present_query_capabilities_unchecked(). is used.
810  * Otherwise, it stores the error if any.
811  *
812  * The returned value must be freed by the caller using free().
813  */
814 
815 /*****************************************************************************
816  **
817  ** xcb_present_query_capabilities_reply_t * xcb_present_query_capabilities_reply
818  **
819  ** @param xcb_connection_t                         *c
820  ** @param xcb_present_query_capabilities_cookie_t   cookie
821  ** @param xcb_generic_error_t                     **e
822  ** @returns xcb_present_query_capabilities_reply_t *
823  **
824  *****************************************************************************/
825 
826 xcb_present_query_capabilities_reply_t *
827 xcb_present_query_capabilities_reply (xcb_connection_t                         *c  /**< */,
828                                       xcb_present_query_capabilities_cookie_t   cookie  /**< */,
829                                       xcb_generic_error_t                     **e  /**< */);
830 
831 int
832 xcb_present_redirect_notify_sizeof (const void  *_buffer  /**< */,
833                                     uint32_t     notifies_len  /**< */);
834 
835 
836 #ifdef __cplusplus
837 }
838 #endif
839 
840 #endif
841 
842 /**
843  * @}
844  */
845