6.8 KB、288行 生 Blame 履歴
1/*
2 * Copyright © 2013 Keith Packard
3 *
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.
13 *
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
20 * OF THIS SOFTWARE.
21 */
22
23#ifndef _DRI3_PROTO_H_
24#define _DRI3_PROTO_H_
25
26#define DRI3_NAME "DRI3"
27#define DRI3_MAJOR 1
28#define DRI3_MINOR 4
29
30#define DRI3NumberErrors 0
31#define DRI3NumberEvents 0
32
33#define X_DRI3QueryVersion 0
34#define X_DRI3Open 1
35#define X_DRI3PixmapFromBuffer 2
36#define X_DRI3BufferFromPixmap 3
37#define X_DRI3FenceFromFD 4
38#define X_DRI3FDFromFence 5
39
40/* v1.2 */
41#define xDRI3GetSupportedModifiers 6
42#define xDRI3PixmapFromBuffers 7
43#define xDRI3BuffersFromPixmap 8
44
45/* v1.3 */
46#define xDRI3SetDRMDeviceInUse 9
47
48/* v1.4 */
49#define xDRI3ImportSyncobj 10
50#define xDRI3FreeSyncobj 11
51
52#define DRI3NumberRequests 12
53
54#define DRI3Syncobj CARD32
55
56typedef struct {
57 CARD8 reqType;
58 CARD8 dri3ReqType;
59 CARD16 length;
60 CARD32 majorVersion;
61 CARD32 minorVersion;
62} xDRI3QueryVersionReq;
63#define sz_xDRI3QueryVersionReq 12
64
65typedef struct {
66 BYTE type; /* X_Reply */
67 BYTE pad1;
68 CARD16 sequenceNumber;
69 CARD32 length;
70 CARD32 majorVersion;
71 CARD32 minorVersion;
72 CARD32 pad2;
73 CARD32 pad3;
74 CARD32 pad4;
75 CARD32 pad5;
76} xDRI3QueryVersionReply;
77#define sz_xDRI3QueryVersionReply 32
78
79typedef struct {
80 CARD8 reqType;
81 CARD8 dri3ReqType;
82 CARD16 length;
83 CARD32 drawable;
84 CARD32 provider;
85} xDRI3OpenReq;
86#define sz_xDRI3OpenReq 12
87
88typedef struct {
89 BYTE type; /* X_Reply */
90 CARD8 nfd;
91 CARD16 sequenceNumber;
92 CARD32 length;
93 CARD32 pad2;
94 CARD32 pad3;
95 CARD32 pad4;
96 CARD32 pad5;
97 CARD32 pad6;
98 CARD32 pad7;
99} xDRI3OpenReply;
100#define sz_xDRI3OpenReply 32
101
102typedef struct {
103 CARD8 reqType;
104 CARD8 dri3ReqType;
105 CARD16 length;
106 CARD32 pixmap;
107 CARD32 drawable;
108 CARD32 size;
109 CARD16 width;
110 CARD16 height;
111 CARD16 stride;
112 CARD8 depth;
113 CARD8 bpp;
114} xDRI3PixmapFromBufferReq;
115
116#define sz_xDRI3PixmapFromBufferReq 24
117
118typedef struct {
119 CARD8 reqType;
120 CARD8 dri3ReqType;
121 CARD16 length;
122 CARD32 pixmap;
123} xDRI3BufferFromPixmapReq;
124#define sz_xDRI3BufferFromPixmapReq 8
125
126typedef struct {
127 BYTE type; /* X_Reply */
128 CARD8 nfd; /* Number of file descriptors returned (1) */
129 CARD16 sequenceNumber;
130 CARD32 length;
131 CARD32 size;
132 CARD16 width;
133 CARD16 height;
134 CARD16 stride;
135 CARD8 depth;
136 CARD8 bpp;
137 CARD32 pad20;
138 CARD32 pad24;
139 CARD32 pad28;
140} xDRI3BufferFromPixmapReply;
141#define sz_xDRI3BufferFromPixmapReply 32
142
143typedef struct {
144 CARD8 reqType;
145 CARD8 dri3ReqType;
146 CARD16 length;
147 CARD32 drawable;
148 CARD32 fence;
149 BOOL initially_triggered;
150 CARD8 pad13;
151 CARD16 pad14;
152} xDRI3FenceFromFDReq;
153
154#define sz_xDRI3FenceFromFDReq 16
155
156typedef struct {
157 CARD8 reqType;
158 CARD8 dri3ReqType;
159 CARD16 length;
160 CARD32 drawable;
161 CARD32 fence;
162} xDRI3FDFromFenceReq;
163
164#define sz_xDRI3FDFromFenceReq 12
165
166typedef struct {
167 BYTE type; /* X_Reply */
168 CARD8 nfd; /* Number of file descriptors returned (1) */
169 CARD16 sequenceNumber;
170 CARD32 length;
171 CARD32 pad08;
172 CARD32 pad12;
173 CARD32 pad16;
174 CARD32 pad20;
175 CARD32 pad24;
176 CARD32 pad28;
177} xDRI3FDFromFenceReply;
178
179#define sz_xDRI3FDFromFenceReply 32
180
181/* v1.2 */
182
183typedef struct {
184 CARD8 reqType;
185 CARD8 dri3ReqType;
186 CARD16 length;
187 CARD32 window;
188 CARD8 depth;
189 CARD8 bpp;
190 CARD16 pad10;
191} xDRI3GetSupportedModifiersReq;
192#define sz_xDRI3GetSupportedModifiersReq 12
193
194typedef struct {
195 BYTE type; /* X_Reply */
196 CARD8 pad1;
197 CARD16 sequenceNumber;
198 CARD32 length;
199 CARD32 numWindowModifiers;
200 CARD32 numScreenModifiers;
201 CARD32 pad16;
202 CARD32 pad20;
203 CARD32 pad24;
204 CARD32 pad28;
205} xDRI3GetSupportedModifiersReply;
206#define sz_xDRI3GetSupportedModifiersReply 32
207
208typedef struct {
209 CARD8 reqType;
210 CARD8 dri3ReqType;
211 CARD16 length;
212 CARD32 pixmap;
213 CARD32 window;
214 CARD8 num_buffers; /* Number of file descriptors passed */
215 CARD8 pad13;
216 CARD16 pad14;
217 CARD16 width;
218 CARD16 height;
219 CARD32 stride0;
220 CARD32 offset0;
221 CARD32 stride1;
222 CARD32 offset1;
223 CARD32 stride2;
224 CARD32 offset2;
225 CARD32 stride3;
226 CARD32 offset3;
227 CARD8 depth;
228 CARD8 bpp;
229 CARD16 pad54;
230 CARD64 modifier;
231} xDRI3PixmapFromBuffersReq;
232#define sz_xDRI3PixmapFromBuffersReq 64
233
234typedef struct {
235 CARD8 reqType;
236 CARD8 dri3ReqType;
237 CARD16 length;
238 CARD32 pixmap;
239} xDRI3BuffersFromPixmapReq;
240#define sz_xDRI3BuffersFromPixmapReq 8
241
242typedef struct {
243 BYTE type; /* X_Reply */
244 CARD8 nfd; /* Number of file descriptors returned */
245 CARD16 sequenceNumber;
246 CARD32 length;
247 CARD16 width;
248 CARD16 height;
249 CARD32 pad12;
250 CARD64 modifier;
251 CARD8 depth;
252 CARD8 bpp;
253 CARD16 pad26;
254 CARD32 pad28;
255} xDRI3BuffersFromPixmapReply;
256#define sz_xDRI3BuffersFromPixmapReply 32
257
258/* v1.3 */
259
260typedef struct {
261 CARD8 reqType;
262 CARD8 dri3ReqType;
263 CARD16 length;
264 CARD32 window;
265 CARD32 drmMajor;
266 CARD32 drmMinor;
267} xDRI3SetDRMDeviceInUseReq;
268#define sz_xDRI3SetDRMDeviceInUseReq 16
269
270/* v1.4 */
271typedef struct {
272 CARD8 reqType;
273 CARD8 dri3ReqType;
274 CARD16 length;
275 DRI3Syncobj syncobj;
276 CARD32 drawable;
277} xDRI3ImportSyncobjReq;
278#define sz_xDRI3ImportSyncobjReq 12
279
280typedef struct {
281 CARD8 reqType;
282 CARD8 dri3ReqType;
283 CARD16 length;
284 DRI3Syncobj syncobj;
285} xDRI3FreeSyncobjReq;
286#define sz_xDRI3FreeSyncobjReq 8
287
288#endif