Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:36

0001 /*
0002  * This file generated automatically from dbe.xml by c_client.py.
0003  * Edit at your peril.
0004  */
0005 
0006 /**
0007  * @defgroup XCB_Dbe_API XCB Dbe API
0008  * @brief Dbe XCB Protocol Implementation.
0009  * @{
0010  **/
0011 
0012 #ifndef __DBE_H
0013 #define __DBE_H
0014 
0015 #include "xcb.h"
0016 #include "xproto.h"
0017 
0018 #ifdef __cplusplus
0019 extern "C" {
0020 #endif
0021 
0022 #define XCB_DBE_MAJOR_VERSION 1
0023 #define XCB_DBE_MINOR_VERSION 0
0024 
0025 extern xcb_extension_t xcb_dbe_id;
0026 
0027 typedef uint32_t xcb_dbe_back_buffer_t;
0028 
0029 /**
0030  * @brief xcb_dbe_back_buffer_iterator_t
0031  **/
0032 typedef struct xcb_dbe_back_buffer_iterator_t {
0033     xcb_dbe_back_buffer_t *data;
0034     int                    rem;
0035     int                    index;
0036 } xcb_dbe_back_buffer_iterator_t;
0037 
0038 typedef enum xcb_dbe_swap_action_t {
0039     XCB_DBE_SWAP_ACTION_UNDEFINED = 0,
0040 /**< Discard the buffer. The buffer may be reallocated and end up with random VRAM content. */
0041 
0042     XCB_DBE_SWAP_ACTION_BACKGROUND = 1,
0043 /**< Erase with window background. */
0044 
0045     XCB_DBE_SWAP_ACTION_UNTOUCHED = 2,
0046 /**< Leave untouched. */
0047 
0048     XCB_DBE_SWAP_ACTION_COPIED = 3
0049 /**< Copy the newly displayed front buffer. */
0050 
0051 } xcb_dbe_swap_action_t;
0052 
0053 /**
0054  * @brief xcb_dbe_swap_info_t
0055  **/
0056 typedef struct xcb_dbe_swap_info_t {
0057     xcb_window_t window;
0058     uint8_t      swap_action;
0059     uint8_t      pad0[3];
0060 } xcb_dbe_swap_info_t;
0061 
0062 /**
0063  * @brief xcb_dbe_swap_info_iterator_t
0064  **/
0065 typedef struct xcb_dbe_swap_info_iterator_t {
0066     xcb_dbe_swap_info_t *data;
0067     int                  rem;
0068     int                  index;
0069 } xcb_dbe_swap_info_iterator_t;
0070 
0071 /**
0072  * @brief xcb_dbe_buffer_attributes_t
0073  **/
0074 typedef struct xcb_dbe_buffer_attributes_t {
0075     xcb_window_t window;
0076 } xcb_dbe_buffer_attributes_t;
0077 
0078 /**
0079  * @brief xcb_dbe_buffer_attributes_iterator_t
0080  **/
0081 typedef struct xcb_dbe_buffer_attributes_iterator_t {
0082     xcb_dbe_buffer_attributes_t *data;
0083     int                          rem;
0084     int                          index;
0085 } xcb_dbe_buffer_attributes_iterator_t;
0086 
0087 /**
0088  * @brief xcb_dbe_visual_info_t
0089  **/
0090 typedef struct xcb_dbe_visual_info_t {
0091     xcb_visualid_t visual_id;
0092     uint8_t        depth;
0093     uint8_t        perf_level;
0094     uint8_t        pad0[2];
0095 } xcb_dbe_visual_info_t;
0096 
0097 /**
0098  * @brief xcb_dbe_visual_info_iterator_t
0099  **/
0100 typedef struct xcb_dbe_visual_info_iterator_t {
0101     xcb_dbe_visual_info_t *data;
0102     int                    rem;
0103     int                    index;
0104 } xcb_dbe_visual_info_iterator_t;
0105 
0106 /**
0107  * @brief xcb_dbe_visual_infos_t
0108  **/
0109 typedef struct xcb_dbe_visual_infos_t {
0110     uint32_t n_infos;
0111 } xcb_dbe_visual_infos_t;
0112 
0113 /**
0114  * @brief xcb_dbe_visual_infos_iterator_t
0115  **/
0116 typedef struct xcb_dbe_visual_infos_iterator_t {
0117     xcb_dbe_visual_infos_t *data;
0118     int                     rem;
0119     int                     index;
0120 } xcb_dbe_visual_infos_iterator_t;
0121 
0122 /** Opcode for xcb_dbe_bad_buffer. */
0123 #define XCB_DBE_BAD_BUFFER 0
0124 
0125 /**
0126  * @brief xcb_dbe_bad_buffer_error_t
0127  **/
0128 typedef struct xcb_dbe_bad_buffer_error_t {
0129     uint8_t               response_type;
0130     uint8_t               error_code;
0131     uint16_t              sequence;
0132     xcb_dbe_back_buffer_t bad_buffer;
0133     uint16_t              minor_opcode;
0134     uint8_t               major_opcode;
0135 } xcb_dbe_bad_buffer_error_t;
0136 
0137 /**
0138  * @brief xcb_dbe_query_version_cookie_t
0139  **/
0140 typedef struct xcb_dbe_query_version_cookie_t {
0141     unsigned int sequence;
0142 } xcb_dbe_query_version_cookie_t;
0143 
0144 /** Opcode for xcb_dbe_query_version. */
0145 #define XCB_DBE_QUERY_VERSION 0
0146 
0147 /**
0148  * @brief xcb_dbe_query_version_request_t
0149  **/
0150 typedef struct xcb_dbe_query_version_request_t {
0151     uint8_t  major_opcode;
0152     uint8_t  minor_opcode;
0153     uint16_t length;
0154     uint8_t  major_version;
0155     uint8_t  minor_version;
0156     uint8_t  pad0[2];
0157 } xcb_dbe_query_version_request_t;
0158 
0159 /**
0160  * @brief xcb_dbe_query_version_reply_t
0161  **/
0162 typedef struct xcb_dbe_query_version_reply_t {
0163     uint8_t  response_type;
0164     uint8_t  pad0;
0165     uint16_t sequence;
0166     uint32_t length;
0167     uint8_t  major_version;
0168     uint8_t  minor_version;
0169     uint8_t  pad1[22];
0170 } xcb_dbe_query_version_reply_t;
0171 
0172 /** Opcode for xcb_dbe_allocate_back_buffer. */
0173 #define XCB_DBE_ALLOCATE_BACK_BUFFER 1
0174 
0175 /**
0176  * @brief xcb_dbe_allocate_back_buffer_request_t
0177  **/
0178 typedef struct xcb_dbe_allocate_back_buffer_request_t {
0179     uint8_t               major_opcode;
0180     uint8_t               minor_opcode;
0181     uint16_t              length;
0182     xcb_window_t          window;
0183     xcb_dbe_back_buffer_t buffer;
0184     uint8_t               swap_action;
0185     uint8_t               pad0[3];
0186 } xcb_dbe_allocate_back_buffer_request_t;
0187 
0188 /** Opcode for xcb_dbe_deallocate_back_buffer. */
0189 #define XCB_DBE_DEALLOCATE_BACK_BUFFER 2
0190 
0191 /**
0192  * @brief xcb_dbe_deallocate_back_buffer_request_t
0193  **/
0194 typedef struct xcb_dbe_deallocate_back_buffer_request_t {
0195     uint8_t               major_opcode;
0196     uint8_t               minor_opcode;
0197     uint16_t              length;
0198     xcb_dbe_back_buffer_t buffer;
0199 } xcb_dbe_deallocate_back_buffer_request_t;
0200 
0201 /** Opcode for xcb_dbe_swap_buffers. */
0202 #define XCB_DBE_SWAP_BUFFERS 3
0203 
0204 /**
0205  * @brief xcb_dbe_swap_buffers_request_t
0206  **/
0207 typedef struct xcb_dbe_swap_buffers_request_t {
0208     uint8_t  major_opcode;
0209     uint8_t  minor_opcode;
0210     uint16_t length;
0211     uint32_t n_actions;
0212 } xcb_dbe_swap_buffers_request_t;
0213 
0214 /** Opcode for xcb_dbe_begin_idiom. */
0215 #define XCB_DBE_BEGIN_IDIOM 4
0216 
0217 /**
0218  * @brief xcb_dbe_begin_idiom_request_t
0219  **/
0220 typedef struct xcb_dbe_begin_idiom_request_t {
0221     uint8_t  major_opcode;
0222     uint8_t  minor_opcode;
0223     uint16_t length;
0224 } xcb_dbe_begin_idiom_request_t;
0225 
0226 /** Opcode for xcb_dbe_end_idiom. */
0227 #define XCB_DBE_END_IDIOM 5
0228 
0229 /**
0230  * @brief xcb_dbe_end_idiom_request_t
0231  **/
0232 typedef struct xcb_dbe_end_idiom_request_t {
0233     uint8_t  major_opcode;
0234     uint8_t  minor_opcode;
0235     uint16_t length;
0236 } xcb_dbe_end_idiom_request_t;
0237 
0238 /**
0239  * @brief xcb_dbe_get_visual_info_cookie_t
0240  **/
0241 typedef struct xcb_dbe_get_visual_info_cookie_t {
0242     unsigned int sequence;
0243 } xcb_dbe_get_visual_info_cookie_t;
0244 
0245 /** Opcode for xcb_dbe_get_visual_info. */
0246 #define XCB_DBE_GET_VISUAL_INFO 6
0247 
0248 /**
0249  * @brief xcb_dbe_get_visual_info_request_t
0250  **/
0251 typedef struct xcb_dbe_get_visual_info_request_t {
0252     uint8_t  major_opcode;
0253     uint8_t  minor_opcode;
0254     uint16_t length;
0255     uint32_t n_drawables;
0256 } xcb_dbe_get_visual_info_request_t;
0257 
0258 /**
0259  * @brief xcb_dbe_get_visual_info_reply_t
0260  **/
0261 typedef struct xcb_dbe_get_visual_info_reply_t {
0262     uint8_t  response_type;
0263     uint8_t  pad0;
0264     uint16_t sequence;
0265     uint32_t length;
0266     uint32_t n_supported_visuals;
0267     uint8_t  pad1[20];
0268 } xcb_dbe_get_visual_info_reply_t;
0269 
0270 /**
0271  * @brief xcb_dbe_get_back_buffer_attributes_cookie_t
0272  **/
0273 typedef struct xcb_dbe_get_back_buffer_attributes_cookie_t {
0274     unsigned int sequence;
0275 } xcb_dbe_get_back_buffer_attributes_cookie_t;
0276 
0277 /** Opcode for xcb_dbe_get_back_buffer_attributes. */
0278 #define XCB_DBE_GET_BACK_BUFFER_ATTRIBUTES 7
0279 
0280 /**
0281  * @brief xcb_dbe_get_back_buffer_attributes_request_t
0282  **/
0283 typedef struct xcb_dbe_get_back_buffer_attributes_request_t {
0284     uint8_t               major_opcode;
0285     uint8_t               minor_opcode;
0286     uint16_t              length;
0287     xcb_dbe_back_buffer_t buffer;
0288 } xcb_dbe_get_back_buffer_attributes_request_t;
0289 
0290 /**
0291  * @brief xcb_dbe_get_back_buffer_attributes_reply_t
0292  **/
0293 typedef struct xcb_dbe_get_back_buffer_attributes_reply_t {
0294     uint8_t                     response_type;
0295     uint8_t                     pad0;
0296     uint16_t                    sequence;
0297     uint32_t                    length;
0298     xcb_dbe_buffer_attributes_t attributes;
0299     uint8_t                     pad1[20];
0300 } xcb_dbe_get_back_buffer_attributes_reply_t;
0301 
0302 /**
0303  * Get the next element of the iterator
0304  * @param i Pointer to a xcb_dbe_back_buffer_iterator_t
0305  *
0306  * Get the next element in the iterator. The member rem is
0307  * decreased by one. The member data points to the next
0308  * element. The member index is increased by sizeof(xcb_dbe_back_buffer_t)
0309  */
0310 void
0311 xcb_dbe_back_buffer_next (xcb_dbe_back_buffer_iterator_t *i);
0312 
0313 /**
0314  * Return the iterator pointing to the last element
0315  * @param i An xcb_dbe_back_buffer_iterator_t
0316  * @return  The iterator pointing to the last element
0317  *
0318  * Set the current element in the iterator to the last element.
0319  * The member rem is set to 0. The member data points to the
0320  * last element.
0321  */
0322 xcb_generic_iterator_t
0323 xcb_dbe_back_buffer_end (xcb_dbe_back_buffer_iterator_t i);
0324 
0325 /**
0326  * Get the next element of the iterator
0327  * @param i Pointer to a xcb_dbe_swap_info_iterator_t
0328  *
0329  * Get the next element in the iterator. The member rem is
0330  * decreased by one. The member data points to the next
0331  * element. The member index is increased by sizeof(xcb_dbe_swap_info_t)
0332  */
0333 void
0334 xcb_dbe_swap_info_next (xcb_dbe_swap_info_iterator_t *i);
0335 
0336 /**
0337  * Return the iterator pointing to the last element
0338  * @param i An xcb_dbe_swap_info_iterator_t
0339  * @return  The iterator pointing to the last element
0340  *
0341  * Set the current element in the iterator to the last element.
0342  * The member rem is set to 0. The member data points to the
0343  * last element.
0344  */
0345 xcb_generic_iterator_t
0346 xcb_dbe_swap_info_end (xcb_dbe_swap_info_iterator_t i);
0347 
0348 /**
0349  * Get the next element of the iterator
0350  * @param i Pointer to a xcb_dbe_buffer_attributes_iterator_t
0351  *
0352  * Get the next element in the iterator. The member rem is
0353  * decreased by one. The member data points to the next
0354  * element. The member index is increased by sizeof(xcb_dbe_buffer_attributes_t)
0355  */
0356 void
0357 xcb_dbe_buffer_attributes_next (xcb_dbe_buffer_attributes_iterator_t *i);
0358 
0359 /**
0360  * Return the iterator pointing to the last element
0361  * @param i An xcb_dbe_buffer_attributes_iterator_t
0362  * @return  The iterator pointing to the last element
0363  *
0364  * Set the current element in the iterator to the last element.
0365  * The member rem is set to 0. The member data points to the
0366  * last element.
0367  */
0368 xcb_generic_iterator_t
0369 xcb_dbe_buffer_attributes_end (xcb_dbe_buffer_attributes_iterator_t i);
0370 
0371 /**
0372  * Get the next element of the iterator
0373  * @param i Pointer to a xcb_dbe_visual_info_iterator_t
0374  *
0375  * Get the next element in the iterator. The member rem is
0376  * decreased by one. The member data points to the next
0377  * element. The member index is increased by sizeof(xcb_dbe_visual_info_t)
0378  */
0379 void
0380 xcb_dbe_visual_info_next (xcb_dbe_visual_info_iterator_t *i);
0381 
0382 /**
0383  * Return the iterator pointing to the last element
0384  * @param i An xcb_dbe_visual_info_iterator_t
0385  * @return  The iterator pointing to the last element
0386  *
0387  * Set the current element in the iterator to the last element.
0388  * The member rem is set to 0. The member data points to the
0389  * last element.
0390  */
0391 xcb_generic_iterator_t
0392 xcb_dbe_visual_info_end (xcb_dbe_visual_info_iterator_t i);
0393 
0394 int
0395 xcb_dbe_visual_infos_sizeof (const void  *_buffer);
0396 
0397 xcb_dbe_visual_info_t *
0398 xcb_dbe_visual_infos_infos (const xcb_dbe_visual_infos_t *R);
0399 
0400 int
0401 xcb_dbe_visual_infos_infos_length (const xcb_dbe_visual_infos_t *R);
0402 
0403 xcb_dbe_visual_info_iterator_t
0404 xcb_dbe_visual_infos_infos_iterator (const xcb_dbe_visual_infos_t *R);
0405 
0406 /**
0407  * Get the next element of the iterator
0408  * @param i Pointer to a xcb_dbe_visual_infos_iterator_t
0409  *
0410  * Get the next element in the iterator. The member rem is
0411  * decreased by one. The member data points to the next
0412  * element. The member index is increased by sizeof(xcb_dbe_visual_infos_t)
0413  */
0414 void
0415 xcb_dbe_visual_infos_next (xcb_dbe_visual_infos_iterator_t *i);
0416 
0417 /**
0418  * Return the iterator pointing to the last element
0419  * @param i An xcb_dbe_visual_infos_iterator_t
0420  * @return  The iterator pointing to the last element
0421  *
0422  * Set the current element in the iterator to the last element.
0423  * The member rem is set to 0. The member data points to the
0424  * last element.
0425  */
0426 xcb_generic_iterator_t
0427 xcb_dbe_visual_infos_end (xcb_dbe_visual_infos_iterator_t i);
0428 
0429 /**
0430  * @brief Queries the version of this extension
0431  *
0432  * @param c The connection
0433  * @param major_version The major version of the extension. Check that it is compatible with the XCB_DBE_MAJOR_VERSION that your code is compiled with.
0434  * @param minor_version The minor version of the extension. Check that it is compatible with the XCB_DBE_MINOR_VERSION that your code is compiled with.
0435  * @return A cookie
0436  *
0437  * Queries the version of this extension. You must do this before using any functionality it provides.
0438  *
0439  */
0440 xcb_dbe_query_version_cookie_t
0441 xcb_dbe_query_version (xcb_connection_t *c,
0442                        uint8_t           major_version,
0443                        uint8_t           minor_version);
0444 
0445 /**
0446  * @brief Queries the version of this extension
0447  *
0448  * @param c The connection
0449  * @param major_version The major version of the extension. Check that it is compatible with the XCB_DBE_MAJOR_VERSION that your code is compiled with.
0450  * @param minor_version The minor version of the extension. Check that it is compatible with the XCB_DBE_MINOR_VERSION that your code is compiled with.
0451  * @return A cookie
0452  *
0453  * Queries the version of this extension. You must do this before using any functionality it provides.
0454  *
0455  * This form can be used only if the request will cause
0456  * a reply to be generated. Any returned error will be
0457  * placed in the event queue.
0458  */
0459 xcb_dbe_query_version_cookie_t
0460 xcb_dbe_query_version_unchecked (xcb_connection_t *c,
0461                                  uint8_t           major_version,
0462                                  uint8_t           minor_version);
0463 
0464 /**
0465  * Return the reply
0466  * @param c      The connection
0467  * @param cookie The cookie
0468  * @param e      The xcb_generic_error_t supplied
0469  *
0470  * Returns the reply of the request asked by
0471  *
0472  * The parameter @p e supplied to this function must be NULL if
0473  * xcb_dbe_query_version_unchecked(). is used.
0474  * Otherwise, it stores the error if any.
0475  *
0476  * The returned value must be freed by the caller using free().
0477  */
0478 xcb_dbe_query_version_reply_t *
0479 xcb_dbe_query_version_reply (xcb_connection_t                *c,
0480                              xcb_dbe_query_version_cookie_t   cookie  /**< */,
0481                              xcb_generic_error_t            **e);
0482 
0483 /**
0484  * @brief Allocates a back buffer
0485  *
0486  * @param c The connection
0487  * @param window The window to which to add the back buffer.
0488  * @param buffer The buffer id to associate with the back buffer.
0489  * @param swap_action The swap action most likely to be used to present this back buffer. This is only a hint, and does not preclude the use of other swap actions.
0490  * @return A cookie
0491  *
0492  * Associates \a buffer with the back buffer of \a window. Multiple ids may be associated with the back buffer, which is created by the first allocate call and destroyed by the last deallocate.
0493  *
0494  * This form can be used only if the request will not cause
0495  * a reply to be generated. Any returned error will be
0496  * saved for handling by xcb_request_check().
0497  */
0498 xcb_void_cookie_t
0499 xcb_dbe_allocate_back_buffer_checked (xcb_connection_t      *c,
0500                                       xcb_window_t           window,
0501                                       xcb_dbe_back_buffer_t  buffer,
0502                                       uint8_t                swap_action);
0503 
0504 /**
0505  * @brief Allocates a back buffer
0506  *
0507  * @param c The connection
0508  * @param window The window to which to add the back buffer.
0509  * @param buffer The buffer id to associate with the back buffer.
0510  * @param swap_action The swap action most likely to be used to present this back buffer. This is only a hint, and does not preclude the use of other swap actions.
0511  * @return A cookie
0512  *
0513  * Associates \a buffer with the back buffer of \a window. Multiple ids may be associated with the back buffer, which is created by the first allocate call and destroyed by the last deallocate.
0514  *
0515  */
0516 xcb_void_cookie_t
0517 xcb_dbe_allocate_back_buffer (xcb_connection_t      *c,
0518                               xcb_window_t           window,
0519                               xcb_dbe_back_buffer_t  buffer,
0520                               uint8_t                swap_action);
0521 
0522 /**
0523  * @brief Deallocates a back buffer
0524  *
0525  * @param c The connection
0526  * @param buffer The back buffer to deallocate.
0527  * @return A cookie
0528  *
0529  * Deallocates the given \a buffer. If \a buffer is an invalid id, a `BadBuffer` error is returned. Because a window may have allocated multiple back buffer ids, the back buffer itself is not deleted until all these ids are deallocated by this call.
0530  *
0531  * This form can be used only if the request will not cause
0532  * a reply to be generated. Any returned error will be
0533  * saved for handling by xcb_request_check().
0534  */
0535 xcb_void_cookie_t
0536 xcb_dbe_deallocate_back_buffer_checked (xcb_connection_t      *c,
0537                                         xcb_dbe_back_buffer_t  buffer);
0538 
0539 /**
0540  * @brief Deallocates a back buffer
0541  *
0542  * @param c The connection
0543  * @param buffer The back buffer to deallocate.
0544  * @return A cookie
0545  *
0546  * Deallocates the given \a buffer. If \a buffer is an invalid id, a `BadBuffer` error is returned. Because a window may have allocated multiple back buffer ids, the back buffer itself is not deleted until all these ids are deallocated by this call.
0547  *
0548  */
0549 xcb_void_cookie_t
0550 xcb_dbe_deallocate_back_buffer (xcb_connection_t      *c,
0551                                 xcb_dbe_back_buffer_t  buffer);
0552 
0553 int
0554 xcb_dbe_swap_buffers_sizeof (const void  *_buffer);
0555 
0556 /**
0557  * @brief Swaps front and back buffers
0558  *
0559  * @param c The connection
0560  * @param n_actions Number of swap actions in \a actions.
0561  * @param actions List of windows on which to swap buffers.
0562  * @return A cookie
0563  *
0564  * Swaps the front and back buffers on the specified windows. The front and back buffers retain their ids, so that the window id continues to refer to the front buffer, while the back buffer id created by this extension continues to refer to the back buffer. Back buffer contents is moved to the front buffer. Back buffer contents after the operation depends on the given swap action. The optimal swap action depends on how each frame is rendered. For example, if the buffer is cleared and fully overwritten on every frame, the "untouched" action, which throws away the buffer contents, would provide the best performance. To eliminate visual artifacts, the swap will occure during the monitor VSync, if the X server supports detecting it.
0565  *
0566  * This form can be used only if the request will not cause
0567  * a reply to be generated. Any returned error will be
0568  * saved for handling by xcb_request_check().
0569  */
0570 xcb_void_cookie_t
0571 xcb_dbe_swap_buffers_checked (xcb_connection_t          *c,
0572                               uint32_t                   n_actions,
0573                               const xcb_dbe_swap_info_t *actions);
0574 
0575 /**
0576  * @brief Swaps front and back buffers
0577  *
0578  * @param c The connection
0579  * @param n_actions Number of swap actions in \a actions.
0580  * @param actions List of windows on which to swap buffers.
0581  * @return A cookie
0582  *
0583  * Swaps the front and back buffers on the specified windows. The front and back buffers retain their ids, so that the window id continues to refer to the front buffer, while the back buffer id created by this extension continues to refer to the back buffer. Back buffer contents is moved to the front buffer. Back buffer contents after the operation depends on the given swap action. The optimal swap action depends on how each frame is rendered. For example, if the buffer is cleared and fully overwritten on every frame, the "untouched" action, which throws away the buffer contents, would provide the best performance. To eliminate visual artifacts, the swap will occure during the monitor VSync, if the X server supports detecting it.
0584  *
0585  */
0586 xcb_void_cookie_t
0587 xcb_dbe_swap_buffers (xcb_connection_t          *c,
0588                       uint32_t                   n_actions,
0589                       const xcb_dbe_swap_info_t *actions);
0590 
0591 xcb_dbe_swap_info_t *
0592 xcb_dbe_swap_buffers_actions (const xcb_dbe_swap_buffers_request_t *R);
0593 
0594 int
0595 xcb_dbe_swap_buffers_actions_length (const xcb_dbe_swap_buffers_request_t *R);
0596 
0597 xcb_dbe_swap_info_iterator_t
0598 xcb_dbe_swap_buffers_actions_iterator (const xcb_dbe_swap_buffers_request_t *R);
0599 
0600 /**
0601  * @brief Begins a logical swap block
0602  *
0603  * @param c The connection
0604  * @return A cookie
0605  *
0606  * Creates a block of operations intended to occur together. This may be needed if window presentation requires changing buffers unknown to this extension, such as depth or stencil buffers.
0607  *
0608  * This form can be used only if the request will not cause
0609  * a reply to be generated. Any returned error will be
0610  * saved for handling by xcb_request_check().
0611  */
0612 xcb_void_cookie_t
0613 xcb_dbe_begin_idiom_checked (xcb_connection_t *c);
0614 
0615 /**
0616  * @brief Begins a logical swap block
0617  *
0618  * @param c The connection
0619  * @return A cookie
0620  *
0621  * Creates a block of operations intended to occur together. This may be needed if window presentation requires changing buffers unknown to this extension, such as depth or stencil buffers.
0622  *
0623  */
0624 xcb_void_cookie_t
0625 xcb_dbe_begin_idiom (xcb_connection_t *c);
0626 
0627 /**
0628  * @brief Ends a logical swap block
0629  *
0630  * @param c The connection
0631  * @return A cookie
0632  *
0633  * No description yet
0634  *
0635  * This form can be used only if the request will not cause
0636  * a reply to be generated. Any returned error will be
0637  * saved for handling by xcb_request_check().
0638  */
0639 xcb_void_cookie_t
0640 xcb_dbe_end_idiom_checked (xcb_connection_t *c);
0641 
0642 /**
0643  * @brief Ends a logical swap block
0644  *
0645  * @param c The connection
0646  * @return A cookie
0647  *
0648  * No description yet
0649  *
0650  */
0651 xcb_void_cookie_t
0652 xcb_dbe_end_idiom (xcb_connection_t *c);
0653 
0654 int
0655 xcb_dbe_get_visual_info_sizeof (const void  *_buffer);
0656 
0657 /**
0658  * @brief Requests visuals that support double buffering
0659  *
0660  * @param c The connection
0661  * @return A cookie
0662  *
0663  * No description yet
0664  *
0665  */
0666 xcb_dbe_get_visual_info_cookie_t
0667 xcb_dbe_get_visual_info (xcb_connection_t     *c,
0668                          uint32_t              n_drawables,
0669                          const xcb_drawable_t *drawables);
0670 
0671 /**
0672  * @brief Requests visuals that support double buffering
0673  *
0674  * @param c The connection
0675  * @return A cookie
0676  *
0677  * No description yet
0678  *
0679  * This form can be used only if the request will cause
0680  * a reply to be generated. Any returned error will be
0681  * placed in the event queue.
0682  */
0683 xcb_dbe_get_visual_info_cookie_t
0684 xcb_dbe_get_visual_info_unchecked (xcb_connection_t     *c,
0685                                    uint32_t              n_drawables,
0686                                    const xcb_drawable_t *drawables);
0687 
0688 int
0689 xcb_dbe_get_visual_info_supported_visuals_length (const xcb_dbe_get_visual_info_reply_t *R);
0690 
0691 xcb_dbe_visual_infos_iterator_t
0692 xcb_dbe_get_visual_info_supported_visuals_iterator (const xcb_dbe_get_visual_info_reply_t *R);
0693 
0694 /**
0695  * Return the reply
0696  * @param c      The connection
0697  * @param cookie The cookie
0698  * @param e      The xcb_generic_error_t supplied
0699  *
0700  * Returns the reply of the request asked by
0701  *
0702  * The parameter @p e supplied to this function must be NULL if
0703  * xcb_dbe_get_visual_info_unchecked(). is used.
0704  * Otherwise, it stores the error if any.
0705  *
0706  * The returned value must be freed by the caller using free().
0707  */
0708 xcb_dbe_get_visual_info_reply_t *
0709 xcb_dbe_get_visual_info_reply (xcb_connection_t                  *c,
0710                                xcb_dbe_get_visual_info_cookie_t   cookie  /**< */,
0711                                xcb_generic_error_t              **e);
0712 
0713 /**
0714  * @brief Gets back buffer attributes
0715  *
0716  * @param c The connection
0717  * @param buffer The back buffer to query.
0718  * @return A cookie
0719  *
0720  * Returns the attributes of the specified \a buffer.
0721  *
0722  */
0723 xcb_dbe_get_back_buffer_attributes_cookie_t
0724 xcb_dbe_get_back_buffer_attributes (xcb_connection_t      *c,
0725                                     xcb_dbe_back_buffer_t  buffer);
0726 
0727 /**
0728  * @brief Gets back buffer attributes
0729  *
0730  * @param c The connection
0731  * @param buffer The back buffer to query.
0732  * @return A cookie
0733  *
0734  * Returns the attributes of the specified \a buffer.
0735  *
0736  * This form can be used only if the request will cause
0737  * a reply to be generated. Any returned error will be
0738  * placed in the event queue.
0739  */
0740 xcb_dbe_get_back_buffer_attributes_cookie_t
0741 xcb_dbe_get_back_buffer_attributes_unchecked (xcb_connection_t      *c,
0742                                               xcb_dbe_back_buffer_t  buffer);
0743 
0744 /**
0745  * Return the reply
0746  * @param c      The connection
0747  * @param cookie The cookie
0748  * @param e      The xcb_generic_error_t supplied
0749  *
0750  * Returns the reply of the request asked by
0751  *
0752  * The parameter @p e supplied to this function must be NULL if
0753  * xcb_dbe_get_back_buffer_attributes_unchecked(). is used.
0754  * Otherwise, it stores the error if any.
0755  *
0756  * The returned value must be freed by the caller using free().
0757  */
0758 xcb_dbe_get_back_buffer_attributes_reply_t *
0759 xcb_dbe_get_back_buffer_attributes_reply (xcb_connection_t                             *c,
0760                                           xcb_dbe_get_back_buffer_attributes_cookie_t   cookie  /**< */,
0761                                           xcb_generic_error_t                         **e);
0762 
0763 
0764 #ifdef __cplusplus
0765 }
0766 #endif
0767 
0768 #endif
0769 
0770 /**
0771  * @}
0772  */