2 * Copyright © 2013 Keith Packard
4 * Permission to use, copy, modify, distribute, and sell this software and its
5 * documentation for any purpose is hereby granted without fee, provided that
6 * the above copyright notice appear in all copies and that both that copyright
7 * notice and this permission notice appear in supporting documentation, and
8 * that the name of the copyright holders not be used in advertising or
9 * publicity pertaining to distribution of the software without specific,
10 * written prior permission. The copyright holders make no representations
11 * about the suitability of this software for any purpose. It is provided "as
12 * is" without express or implied warranty.
14 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
23 #ifndef _PRESENT_PROTO_H_
24 #define _PRESENT_PROTO_H_
26 #include <X11/extensions/presenttokens.h>
29 #define XSyncFence CARD32
30 #define EventID CARD32
36 #define sz_xPresentNotify 8
42 CARD32 majorVersion B32;
43 CARD32 minorVersion B32;
44 } xPresentQueryVersionReq;
45 #define sz_xPresentQueryVersionReq 12
48 BYTE type; /* X_Reply */
50 CARD16 sequenceNumber B16;
52 CARD32 majorVersion B32;
53 CARD32 minorVersion B32;
58 } xPresentQueryVersionReply;
59 #define sz_xPresentQueryVersionReply 32
75 CARD32 target_crtc B32;
77 XSyncFence wait_fence B32;
78 XSyncFence idle_fence B32;
86 /* followed by a LISTofPRESENTNOTIFY */
88 #define sz_xPresentPixmapReq 72
102 } xPresentNotifyMSCReq;
103 #define sz_xPresentNotifyMSCReq 40
107 CARD8 presentReqType;
111 CARD32 eventMask B32;
112 } xPresentSelectInputReq;
113 #define sz_xPresentSelectInputReq 16
117 CARD8 presentReqType;
120 } xPresentQueryCapabilitiesReq;
121 #define sz_xPresentQueryCapabilitiesReq 8
124 BYTE type; /* X_Reply */
126 CARD16 sequenceNumber B16;
128 CARD32 capabilities B32;
134 } xPresentQueryCapabilitiesReply;
135 #define sz_xPresentQueryCapabilitiesReply 32
140 * All Present events are X Generic Events
146 CARD16 sequenceNumber B16;
159 CARD16 pixmap_width B16;
160 CARD16 pixmap_height B16;
161 CARD32 pixmap_flags B32;
162 } xPresentConfigureNotify;
163 #define sz_xPresentConfigureNotify 40
168 CARD16 sequenceNumber B16;
179 } xPresentCompleteNotify;
180 #define sz_xPresentCompleteNotify 40
185 CARD16 sequenceNumber B16;
193 CARD32 idle_fence B32;
194 } xPresentIdleNotify;
195 #define sz_xPresentIdleNotify 32
200 CARD16 sequenceNumber B16;
206 Window event_window B32;
211 /* 32-byte boundary */
213 Region valid_region B32;
214 Region update_region B32;
216 xRectangle valid_rect;
218 xRectangle update_rect;
222 CARD32 target_crtc B32;
224 XSyncFence wait_fence B32;
225 XSyncFence idle_fence B32;
234 } xPresentRedirectNotify;
236 #define sz_xPresentRedirectNotify 104
241 CARD16 sequenceNumber B16;
251 } xPresentScanoutNotify;
252 #define sz_xPresentScanoutNotify 32