XCB  1.13.1
present.h
00001 /*
00002  * This file generated automatically from present.xml by c_client.py.
00003  * Edit at your peril.
00004  */
00005 
00012 #ifndef __PRESENT_H
00013 #define __PRESENT_H
00014 
00015 #include "xcb.h"
00016 #include "xproto.h"
00017 #include "randr.h"
00018 #include "xfixes.h"
00019 #include "sync.h"
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00025 #define XCB_PRESENT_MAJOR_VERSION 1
00026 #define XCB_PRESENT_MINOR_VERSION 2
00027 
00028 extern xcb_extension_t xcb_present_id;
00029 
00030 typedef enum xcb_present_event_enum_t {
00031     XCB_PRESENT_EVENT_CONFIGURE_NOTIFY = 0,
00032     XCB_PRESENT_EVENT_COMPLETE_NOTIFY = 1,
00033     XCB_PRESENT_EVENT_IDLE_NOTIFY = 2,
00034     XCB_PRESENT_EVENT_REDIRECT_NOTIFY = 3
00035 } xcb_present_event_enum_t;
00036 
00037 typedef enum xcb_present_event_mask_t {
00038     XCB_PRESENT_EVENT_MASK_NO_EVENT = 0,
00039     XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY = 1,
00040     XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY = 2,
00041     XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY = 4,
00042     XCB_PRESENT_EVENT_MASK_REDIRECT_NOTIFY = 8
00043 } xcb_present_event_mask_t;
00044 
00045 typedef enum xcb_present_option_t {
00046     XCB_PRESENT_OPTION_NONE = 0,
00047     XCB_PRESENT_OPTION_ASYNC = 1,
00048     XCB_PRESENT_OPTION_COPY = 2,
00049     XCB_PRESENT_OPTION_UST = 4,
00050     XCB_PRESENT_OPTION_SUBOPTIMAL = 8
00051 } xcb_present_option_t;
00052 
00053 typedef enum xcb_present_capability_t {
00054     XCB_PRESENT_CAPABILITY_NONE = 0,
00055     XCB_PRESENT_CAPABILITY_ASYNC = 1,
00056     XCB_PRESENT_CAPABILITY_FENCE = 2,
00057     XCB_PRESENT_CAPABILITY_UST = 4
00058 } xcb_present_capability_t;
00059 
00060 typedef enum xcb_present_complete_kind_t {
00061     XCB_PRESENT_COMPLETE_KIND_PIXMAP = 0,
00062     XCB_PRESENT_COMPLETE_KIND_NOTIFY_MSC = 1
00063 } xcb_present_complete_kind_t;
00064 
00065 typedef enum xcb_present_complete_mode_t {
00066     XCB_PRESENT_COMPLETE_MODE_COPY = 0,
00067     XCB_PRESENT_COMPLETE_MODE_FLIP = 1,
00068     XCB_PRESENT_COMPLETE_MODE_SKIP = 2,
00069     XCB_PRESENT_COMPLETE_MODE_SUBOPTIMAL_COPY = 3
00070 } xcb_present_complete_mode_t;
00071 
00075 typedef struct xcb_present_notify_t {
00076     xcb_window_t window;
00077     uint32_t     serial;
00078 } xcb_present_notify_t;
00079 
00083 typedef struct xcb_present_notify_iterator_t {
00084     xcb_present_notify_t *data;
00085     int                   rem;
00086     int                   index;
00087 } xcb_present_notify_iterator_t;
00088 
00092 typedef struct xcb_present_query_version_cookie_t {
00093     unsigned int sequence;
00094 } xcb_present_query_version_cookie_t;
00095 
00097 #define XCB_PRESENT_QUERY_VERSION 0
00098 
00102 typedef struct xcb_present_query_version_request_t {
00103     uint8_t  major_opcode;
00104     uint8_t  minor_opcode;
00105     uint16_t length;
00106     uint32_t major_version;
00107     uint32_t minor_version;
00108 } xcb_present_query_version_request_t;
00109 
00113 typedef struct xcb_present_query_version_reply_t {
00114     uint8_t  response_type;
00115     uint8_t  pad0;
00116     uint16_t sequence;
00117     uint32_t length;
00118     uint32_t major_version;
00119     uint32_t minor_version;
00120 } xcb_present_query_version_reply_t;
00121 
00123 #define XCB_PRESENT_PIXMAP 1
00124 
00128 typedef struct xcb_present_pixmap_request_t {
00129     uint8_t             major_opcode;
00130     uint8_t             minor_opcode;
00131     uint16_t            length;
00132     xcb_window_t        window;
00133     xcb_pixmap_t        pixmap;
00134     uint32_t            serial;
00135     xcb_xfixes_region_t valid;
00136     xcb_xfixes_region_t update;
00137     int16_t             x_off;
00138     int16_t             y_off;
00139     xcb_randr_crtc_t    target_crtc;
00140     xcb_sync_fence_t    wait_fence;
00141     xcb_sync_fence_t    idle_fence;
00142     uint32_t            options;
00143     uint8_t             pad0[4];
00144     uint64_t            target_msc;
00145     uint64_t            divisor;
00146     uint64_t            remainder;
00147 } xcb_present_pixmap_request_t;
00148 
00150 #define XCB_PRESENT_NOTIFY_MSC 2
00151 
00155 typedef struct xcb_present_notify_msc_request_t {
00156     uint8_t      major_opcode;
00157     uint8_t      minor_opcode;
00158     uint16_t     length;
00159     xcb_window_t window;
00160     uint32_t     serial;
00161     uint8_t      pad0[4];
00162     uint64_t     target_msc;
00163     uint64_t     divisor;
00164     uint64_t     remainder;
00165 } xcb_present_notify_msc_request_t;
00166 
00167 typedef uint32_t xcb_present_event_t;
00168 
00172 typedef struct xcb_present_event_iterator_t {
00173     xcb_present_event_t *data;
00174     int                  rem;
00175     int                  index;
00176 } xcb_present_event_iterator_t;
00177 
00179 #define XCB_PRESENT_SELECT_INPUT 3
00180 
00184 typedef struct xcb_present_select_input_request_t {
00185     uint8_t             major_opcode;
00186     uint8_t             minor_opcode;
00187     uint16_t            length;
00188     xcb_present_event_t eid;
00189     xcb_window_t        window;
00190     uint32_t            event_mask;
00191 } xcb_present_select_input_request_t;
00192 
00196 typedef struct xcb_present_query_capabilities_cookie_t {
00197     unsigned int sequence;
00198 } xcb_present_query_capabilities_cookie_t;
00199 
00201 #define XCB_PRESENT_QUERY_CAPABILITIES 4
00202 
00206 typedef struct xcb_present_query_capabilities_request_t {
00207     uint8_t  major_opcode;
00208     uint8_t  minor_opcode;
00209     uint16_t length;
00210     uint32_t target;
00211 } xcb_present_query_capabilities_request_t;
00212 
00216 typedef struct xcb_present_query_capabilities_reply_t {
00217     uint8_t  response_type;
00218     uint8_t  pad0;
00219     uint16_t sequence;
00220     uint32_t length;
00221     uint32_t capabilities;
00222 } xcb_present_query_capabilities_reply_t;
00223 
00225 #define XCB_PRESENT_GENERIC 0
00226 
00230 typedef struct xcb_present_generic_event_t {
00231     uint8_t             response_type;
00232     uint8_t             extension;
00233     uint16_t            sequence;
00234     uint32_t            length;
00235     uint16_t            evtype;
00236     uint8_t             pad0[2];
00237     xcb_present_event_t event;
00238 } xcb_present_generic_event_t;
00239 
00241 #define XCB_PRESENT_CONFIGURE_NOTIFY 0
00242 
00246 typedef struct xcb_present_configure_notify_event_t {
00247     uint8_t             response_type;
00248     uint8_t             extension;
00249     uint16_t            sequence;
00250     uint32_t            length;
00251     uint16_t            event_type;
00252     uint8_t             pad0[2];
00253     xcb_present_event_t event;
00254     xcb_window_t        window;
00255     int16_t             x;
00256     int16_t             y;
00257     uint16_t            width;
00258     uint16_t            height;
00259     int16_t             off_x;
00260     int16_t             off_y;
00261     uint32_t            full_sequence;
00262     uint16_t            pixmap_width;
00263     uint16_t            pixmap_height;
00264     uint32_t            pixmap_flags;
00265 } xcb_present_configure_notify_event_t;
00266 
00268 #define XCB_PRESENT_COMPLETE_NOTIFY 1
00269 
00273 typedef struct xcb_present_complete_notify_event_t {
00274     uint8_t             response_type;
00275     uint8_t             extension;
00276     uint16_t            sequence;
00277     uint32_t            length;
00278     uint16_t            event_type;
00279     uint8_t             kind;
00280     uint8_t             mode;
00281     xcb_present_event_t event;
00282     xcb_window_t        window;
00283     uint32_t            serial;
00284     uint64_t            ust;
00285     uint32_t            full_sequence;
00286     uint64_t            msc;
00287 } XCB_PACKED xcb_present_complete_notify_event_t;
00288 
00290 #define XCB_PRESENT_IDLE_NOTIFY 2
00291 
00295 typedef struct xcb_present_idle_notify_event_t {
00296     uint8_t             response_type;
00297     uint8_t             extension;
00298     uint16_t            sequence;
00299     uint32_t            length;
00300     uint16_t            event_type;
00301     uint8_t             pad0[2];
00302     xcb_present_event_t event;
00303     xcb_window_t        window;
00304     uint32_t            serial;
00305     xcb_pixmap_t        pixmap;
00306     xcb_sync_fence_t    idle_fence;
00307     uint32_t            full_sequence;
00308 } xcb_present_idle_notify_event_t;
00309 
00311 #define XCB_PRESENT_REDIRECT_NOTIFY 3
00312 
00316 typedef struct xcb_present_redirect_notify_event_t {
00317     uint8_t             response_type;
00318     uint8_t             extension;
00319     uint16_t            sequence;
00320     uint32_t            length;
00321     uint16_t            event_type;
00322     uint8_t             update_window;
00323     uint8_t             pad0;
00324     xcb_present_event_t event;
00325     xcb_window_t        event_window;
00326     xcb_window_t        window;
00327     xcb_pixmap_t        pixmap;
00328     uint32_t            serial;
00329     uint32_t            full_sequence;
00330     xcb_xfixes_region_t valid_region;
00331     xcb_xfixes_region_t update_region;
00332     xcb_rectangle_t     valid_rect;
00333     xcb_rectangle_t     update_rect;
00334     int16_t             x_off;
00335     int16_t             y_off;
00336     xcb_randr_crtc_t    target_crtc;
00337     xcb_sync_fence_t    wait_fence;
00338     xcb_sync_fence_t    idle_fence;
00339     uint32_t            options;
00340     uint8_t             pad1[4];
00341     uint64_t            target_msc;
00342     uint64_t            divisor;
00343     uint64_t            remainder;
00344 } XCB_PACKED xcb_present_redirect_notify_event_t;
00345 
00354 void
00355 xcb_present_notify_next (xcb_present_notify_iterator_t *i);
00356 
00366 xcb_generic_iterator_t
00367 xcb_present_notify_end (xcb_present_notify_iterator_t i);
00368 
00377 xcb_present_query_version_cookie_t
00378 xcb_present_query_version (xcb_connection_t *c,
00379                            uint32_t          major_version,
00380                            uint32_t          minor_version);
00381 
00393 xcb_present_query_version_cookie_t
00394 xcb_present_query_version_unchecked (xcb_connection_t *c,
00395                                      uint32_t          major_version,
00396                                      uint32_t          minor_version);
00397 
00412 xcb_present_query_version_reply_t *
00413 xcb_present_query_version_reply (xcb_connection_t                    *c,
00414                                  xcb_present_query_version_cookie_t   cookie  ,
00415                                  xcb_generic_error_t                **e);
00416 
00417 int
00418 xcb_present_pixmap_sizeof (const void  *_buffer,
00419                            uint32_t     notifies_len);
00420 
00432 xcb_void_cookie_t
00433 xcb_present_pixmap_checked (xcb_connection_t           *c,
00434                             xcb_window_t                window,
00435                             xcb_pixmap_t                pixmap,
00436                             uint32_t                    serial,
00437                             xcb_xfixes_region_t         valid,
00438                             xcb_xfixes_region_t         update,
00439                             int16_t                     x_off,
00440                             int16_t                     y_off,
00441                             xcb_randr_crtc_t            target_crtc,
00442                             xcb_sync_fence_t            wait_fence,
00443                             xcb_sync_fence_t            idle_fence,
00444                             uint32_t                    options,
00445                             uint64_t                    target_msc,
00446                             uint64_t                    divisor,
00447                             uint64_t                    remainder,
00448                             uint32_t                    notifies_len,
00449                             const xcb_present_notify_t *notifies);
00450 
00459 xcb_void_cookie_t
00460 xcb_present_pixmap (xcb_connection_t           *c,
00461                     xcb_window_t                window,
00462                     xcb_pixmap_t                pixmap,
00463                     uint32_t                    serial,
00464                     xcb_xfixes_region_t         valid,
00465                     xcb_xfixes_region_t         update,
00466                     int16_t                     x_off,
00467                     int16_t                     y_off,
00468                     xcb_randr_crtc_t            target_crtc,
00469                     xcb_sync_fence_t            wait_fence,
00470                     xcb_sync_fence_t            idle_fence,
00471                     uint32_t                    options,
00472                     uint64_t                    target_msc,
00473                     uint64_t                    divisor,
00474                     uint64_t                    remainder,
00475                     uint32_t                    notifies_len,
00476                     const xcb_present_notify_t *notifies);
00477 
00478 xcb_present_notify_t *
00479 xcb_present_pixmap_notifies (const xcb_present_pixmap_request_t *R);
00480 
00481 int
00482 xcb_present_pixmap_notifies_length (const xcb_present_pixmap_request_t *R);
00483 
00484 xcb_present_notify_iterator_t
00485 xcb_present_pixmap_notifies_iterator (const xcb_present_pixmap_request_t *R);
00486 
00498 xcb_void_cookie_t
00499 xcb_present_notify_msc_checked (xcb_connection_t *c,
00500                                 xcb_window_t      window,
00501                                 uint32_t          serial,
00502                                 uint64_t          target_msc,
00503                                 uint64_t          divisor,
00504                                 uint64_t          remainder);
00505 
00514 xcb_void_cookie_t
00515 xcb_present_notify_msc (xcb_connection_t *c,
00516                         xcb_window_t      window,
00517                         uint32_t          serial,
00518                         uint64_t          target_msc,
00519                         uint64_t          divisor,
00520                         uint64_t          remainder);
00521 
00530 void
00531 xcb_present_event_next (xcb_present_event_iterator_t *i);
00532 
00542 xcb_generic_iterator_t
00543 xcb_present_event_end (xcb_present_event_iterator_t i);
00544 
00556 xcb_void_cookie_t
00557 xcb_present_select_input_checked (xcb_connection_t    *c,
00558                                   xcb_present_event_t  eid,
00559                                   xcb_window_t         window,
00560                                   uint32_t             event_mask);
00561 
00570 xcb_void_cookie_t
00571 xcb_present_select_input (xcb_connection_t    *c,
00572                           xcb_present_event_t  eid,
00573                           xcb_window_t         window,
00574                           uint32_t             event_mask);
00575 
00584 xcb_present_query_capabilities_cookie_t
00585 xcb_present_query_capabilities (xcb_connection_t *c,
00586                                 uint32_t          target);
00587 
00599 xcb_present_query_capabilities_cookie_t
00600 xcb_present_query_capabilities_unchecked (xcb_connection_t *c,
00601                                           uint32_t          target);
00602 
00617 xcb_present_query_capabilities_reply_t *
00618 xcb_present_query_capabilities_reply (xcb_connection_t                         *c,
00619                                       xcb_present_query_capabilities_cookie_t   cookie  ,
00620                                       xcb_generic_error_t                     **e);
00621 
00622 int
00623 xcb_present_redirect_notify_sizeof (const void  *_buffer,
00624                                     uint32_t     notifies_len);
00625 
00626 xcb_present_notify_t *
00627 xcb_present_redirect_notify_notifies (const xcb_present_redirect_notify_event_t *R);
00628 
00629 int
00630 xcb_present_redirect_notify_notifies_length (const xcb_present_redirect_notify_event_t *R);
00631 
00632 xcb_present_notify_iterator_t
00633 xcb_present_redirect_notify_notifies_iterator (const xcb_present_redirect_notify_event_t *R);
00634 
00635 
00636 #ifdef __cplusplus
00637 }
00638 #endif
00639 
00640 #endif
00641