github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/xcb/present.h (about)

     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 "randr.h"
    18  #include "xfixes.h"
    19  #include "sync.h"
    20  
    21  #ifdef __cplusplus
    22  extern "C" {
    23  #endif
    24  
    25  #define XCB_PRESENT_MAJOR_VERSION 1
    26  #define XCB_PRESENT_MINOR_VERSION 2
    27  
    28  extern xcb_extension_t xcb_present_id;
    29  
    30  typedef enum xcb_present_event_enum_t {
    31      XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0,
    32      XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,
    33      XCB_PRESENT_EVENT_IDLE_NOTIFY = 2,
    34      XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3
    35  } xcb_present_event_enum_t;
    36  
    37  typedef enum xcb_present_event_mask_t {
    38      XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,
    39      XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
    40      XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
    41      XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
    42      XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8
    43  } xcb_present_event_mask_t;
    44  
    45  typedef enum xcb_present_option_t {
    46      XCB_PRESENT_OPTION_NONE = 0,
    47      XCB_PRESENT_OPTION_ASYNC = 1,
    48      XCB_PRESENT_OPTION_COPY = 2,
    49      XCB_PRESENT_OPTION_UST = 4,
    50      XCB_PRESENT_OPTION_SUBOPTIMAL = 8
    51  } xcb_present_option_t;
    52  
    53  typedef enum xcb_present_capability_t {
    54      XCB_PRESENT_CAPABILITY_NONE = 0,
    55      XCB_PRESENT_CAPABILITY_ASYNC = 1,
    56      XCB_PRESENT_CAPABILITY_FENCE = 2,
    57      XCB_PRESENT_CAPABILITY_UST = 4
    58  } xcb_present_capability_t;
    59  
    60  typedef enum xcb_present_complete_kind_t {
    61      XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0,
    62      XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1
    63  } xcb_present_complete_kind_t;
    64  
    65  typedef enum xcb_present_complete_mode_t {
    66      XCB_PRESENT_COMPLETE_MODE_COPY = 0,
    67      XCB_PRESENT_COMPLETE_MODE_FLIP = 1,
    68      XCB_PRESENT_COMPLETE_MODE_SKIP = 2,
    69      XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3
    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_PACKED 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_PACKED 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  void
   355  xcb_present_notify_next (xcb_present_notify_iterator_t *i);
   356  
   357  /**
   358   * Return the iterator pointing to the last element
   359   * @param i An xcb_present_notify_iterator_t
   360   * @return  The iterator pointing to the last element
   361   *
   362   * Set the current element in the iterator to the last element.
   363   * The member rem is set to 0. The member data points to the
   364   * last element.
   365   */
   366  xcb_generic_iterator_t
   367  xcb_present_notify_end (xcb_present_notify_iterator_t i);
   368  
   369  /**
   370   *
   371   * @param c The connection
   372   * @return A cookie
   373   *
   374   * Delivers a request to the X server.
   375   *
   376   */
   377  xcb_present_query_version_cookie_t
   378  xcb_present_query_version (xcb_connection_t *c,
   379                             uint32_t          major_version,
   380                             uint32_t          minor_version);
   381  
   382  /**
   383   *
   384   * @param c The connection
   385   * @return A cookie
   386   *
   387   * Delivers a request to the X server.
   388   *
   389   * This form can be used only if the request will cause
   390   * a reply to be generated. Any returned error will be
   391   * placed in the event queue.
   392   */
   393  xcb_present_query_version_cookie_t
   394  xcb_present_query_version_unchecked (xcb_connection_t *c,
   395                                       uint32_t          major_version,
   396                                       uint32_t          minor_version);
   397  
   398  /**
   399   * Return the reply
   400   * @param c      The connection
   401   * @param cookie The cookie
   402   * @param e      The xcb_generic_error_t supplied
   403   *
   404   * Returns the reply of the request asked by
   405   *
   406   * The parameter @p e supplied to this function must be NULL if
   407   * xcb_present_query_version_unchecked(). is used.
   408   * Otherwise, it stores the error if any.
   409   *
   410   * The returned value must be freed by the caller using free().
   411   */
   412  xcb_present_query_version_reply_t *
   413  xcb_present_query_version_reply (xcb_connection_t                    *c,
   414                                   xcb_present_query_version_cookie_t   cookie  /**< */,
   415                                   xcb_generic_error_t                **e);
   416  
   417  int
   418  xcb_present_pixmap_sizeof (const void  *_buffer,
   419                             uint32_t     notifies_len);
   420  
   421  /**
   422   *
   423   * @param c The connection
   424   * @return A cookie
   425   *
   426   * Delivers a request to the X server.
   427   *
   428   * This form can be used only if the request will not cause
   429   * a reply to be generated. Any returned error will be
   430   * saved for handling by xcb_request_check().
   431   */
   432  xcb_void_cookie_t
   433  xcb_present_pixmap_checked (xcb_connection_t           *c,
   434                              xcb_window_t                window,
   435                              xcb_pixmap_t                pixmap,
   436                              uint32_t                    serial,
   437                              xcb_xfixes_region_t         valid,
   438                              xcb_xfixes_region_t         update,
   439                              int16_t                     x_off,
   440                              int16_t                     y_off,
   441                              xcb_randr_crtc_t            target_crtc,
   442                              xcb_sync_fence_t            wait_fence,
   443                              xcb_sync_fence_t            idle_fence,
   444                              uint32_t                    options,
   445                              uint64_t                    target_msc,
   446                              uint64_t                    divisor,
   447                              uint64_t                    remainder,
   448                              uint32_t                    notifies_len,
   449                              const xcb_present_notify_t *notifies);
   450  
   451  /**
   452   *
   453   * @param c The connection
   454   * @return A cookie
   455   *
   456   * Delivers a request to the X server.
   457   *
   458   */
   459  xcb_void_cookie_t
   460  xcb_present_pixmap (xcb_connection_t           *c,
   461                      xcb_window_t                window,
   462                      xcb_pixmap_t                pixmap,
   463                      uint32_t                    serial,
   464                      xcb_xfixes_region_t         valid,
   465                      xcb_xfixes_region_t         update,
   466                      int16_t                     x_off,
   467                      int16_t                     y_off,
   468                      xcb_randr_crtc_t            target_crtc,
   469                      xcb_sync_fence_t            wait_fence,
   470                      xcb_sync_fence_t            idle_fence,
   471                      uint32_t                    options,
   472                      uint64_t                    target_msc,
   473                      uint64_t                    divisor,
   474                      uint64_t                    remainder,
   475                      uint32_t                    notifies_len,
   476                      const xcb_present_notify_t *notifies);
   477  
   478  xcb_present_notify_t *
   479  xcb_present_pixmap_notifies (const xcb_present_pixmap_request_t *R);
   480  
   481  int
   482  xcb_present_pixmap_notifies_length (const xcb_present_pixmap_request_t *R);
   483  
   484  xcb_present_notify_iterator_t
   485  xcb_present_pixmap_notifies_iterator (const xcb_present_pixmap_request_t *R);
   486  
   487  /**
   488   *
   489   * @param c The connection
   490   * @return A cookie
   491   *
   492   * Delivers a request to the X server.
   493   *
   494   * This form can be used only if the request will not cause
   495   * a reply to be generated. Any returned error will be
   496   * saved for handling by xcb_request_check().
   497   */
   498  xcb_void_cookie_t
   499  xcb_present_notify_msc_checked (xcb_connection_t *c,
   500                                  xcb_window_t      window,
   501                                  uint32_t          serial,
   502                                  uint64_t          target_msc,
   503                                  uint64_t          divisor,
   504                                  uint64_t          remainder);
   505  
   506  /**
   507   *
   508   * @param c The connection
   509   * @return A cookie
   510   *
   511   * Delivers a request to the X server.
   512   *
   513   */
   514  xcb_void_cookie_t
   515  xcb_present_notify_msc (xcb_connection_t *c,
   516                          xcb_window_t      window,
   517                          uint32_t          serial,
   518                          uint64_t          target_msc,
   519                          uint64_t          divisor,
   520                          uint64_t          remainder);
   521  
   522  /**
   523   * Get the next element of the iterator
   524   * @param i Pointer to a xcb_present_event_iterator_t
   525   *
   526   * Get the next element in the iterator. The member rem is
   527   * decreased by one. The member data points to the next
   528   * element. The member index is increased by sizeof(xcb_present_event_t)
   529   */
   530  void
   531  xcb_present_event_next (xcb_present_event_iterator_t *i);
   532  
   533  /**
   534   * Return the iterator pointing to the last element
   535   * @param i An xcb_present_event_iterator_t
   536   * @return  The iterator pointing to the last element
   537   *
   538   * Set the current element in the iterator to the last element.
   539   * The member rem is set to 0. The member data points to the
   540   * last element.
   541   */
   542  xcb_generic_iterator_t
   543  xcb_present_event_end (xcb_present_event_iterator_t i);
   544  
   545  /**
   546   *
   547   * @param c The connection
   548   * @return A cookie
   549   *
   550   * Delivers a request to the X server.
   551   *
   552   * This form can be used only if the request will not cause
   553   * a reply to be generated. Any returned error will be
   554   * saved for handling by xcb_request_check().
   555   */
   556  xcb_void_cookie_t
   557  xcb_present_select_input_checked (xcb_connection_t    *c,
   558                                    xcb_present_event_t  eid,
   559                                    xcb_window_t         window,
   560                                    uint32_t             event_mask);
   561  
   562  /**
   563   *
   564   * @param c The connection
   565   * @return A cookie
   566   *
   567   * Delivers a request to the X server.
   568   *
   569   */
   570  xcb_void_cookie_t
   571  xcb_present_select_input (xcb_connection_t    *c,
   572                            xcb_present_event_t  eid,
   573                            xcb_window_t         window,
   574                            uint32_t             event_mask);
   575  
   576  /**
   577   *
   578   * @param c The connection
   579   * @return A cookie
   580   *
   581   * Delivers a request to the X server.
   582   *
   583   */
   584  xcb_present_query_capabilities_cookie_t
   585  xcb_present_query_capabilities (xcb_connection_t *c,
   586                                  uint32_t          target);
   587  
   588  /**
   589   *
   590   * @param c The connection
   591   * @return A cookie
   592   *
   593   * Delivers a request to the X server.
   594   *
   595   * This form can be used only if the request will cause
   596   * a reply to be generated. Any returned error will be
   597   * placed in the event queue.
   598   */
   599  xcb_present_query_capabilities_cookie_t
   600  xcb_present_query_capabilities_unchecked (xcb_connection_t *c,
   601                                            uint32_t          target);
   602  
   603  /**
   604   * Return the reply
   605   * @param c      The connection
   606   * @param cookie The cookie
   607   * @param e      The xcb_generic_error_t supplied
   608   *
   609   * Returns the reply of the request asked by
   610   *
   611   * The parameter @p e supplied to this function must be NULL if
   612   * xcb_present_query_capabilities_unchecked(). is used.
   613   * Otherwise, it stores the error if any.
   614   *
   615   * The returned value must be freed by the caller using free().
   616   */
   617  xcb_present_query_capabilities_reply_t *
   618  xcb_present_query_capabilities_reply (xcb_connection_t                         *c,
   619                                        xcb_present_query_capabilities_cookie_t   cookie  /**< */,
   620                                        xcb_generic_error_t                     **e);
   621  
   622  int
   623  xcb_present_redirect_notify_sizeof (const void  *_buffer,
   624                                      uint32_t     notifies_len);
   625  
   626  xcb_present_notify_t *
   627  xcb_present_redirect_notify_notifies (const xcb_present_redirect_notify_event_t *R);
   628  
   629  int
   630  xcb_present_redirect_notify_notifies_length (const xcb_present_redirect_notify_event_t *R);
   631  
   632  xcb_present_notify_iterator_t
   633  xcb_present_redirect_notify_notifies_iterator (const xcb_present_redirect_notify_event_t *R);
   634  
   635  
   636  #ifdef __cplusplus
   637  }
   638  #endif
   639  
   640  #endif
   641  
   642  /**
   643   * @}
   644   */