OSDN Git Service

Upload latest libVA library
[android-x86/hardware-intel-common-libva.git] / libva / src / X11 / va_dristr.h
1 /* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.10 2002/10/30 12:51:25 alanh Exp $ */
2 /**************************************************************************
3
4 Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
5 Copyright 2000 VA Linux Systems, Inc.
6 Copyright 2007 Intel Corporation
7 All Rights Reserved.
8
9 Permission is hereby granted, free of charge, to any person obtaining a
10 copy of this software and associated documentation files (the
11 "Software"), to deal in the Software without restriction, including
12 without limitation the rights to use, copy, modify, merge, publish,
13 distribute, sub license, and/or sell copies of the Software, and to
14 permit persons to whom the Software is furnished to do so, subject to
15 the following conditions:
16
17 The above copyright notice and this permission notice (including the
18 next paragraph) shall be included in all copies or substantial portions
19 of the Software.
20
21 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
24 IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
25 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
29 **************************************************************************/
30
31 /*
32  * Authors:
33  *   Kevin E. Martin <martin@valinux.com>
34  *   Jens Owen <jens@tungstengraphics.com>
35  *   Rickard E. (Rik) Fiath <faith@valinux.com>
36  *
37  */
38
39 #ifndef _VA_DRISTR_H_
40 #define _VA_DRISTR_H_
41
42 #include "va_dri.h"
43
44 #define VA_DRINAME "XFree86-DRI"
45
46 /* The DRI version number.  This was originally set to be the same of the
47  * XFree86 version number.  However, this version is really indepedent of
48  * the XFree86 version.
49  *
50  * Version History:
51  *    4.0.0: Original
52  *    4.0.1: Patch to bump clipstamp when windows are destroyed, 28 May 02
53  *    4.1.0: Add transition from single to multi in DRMInfo rec, 24 Jun 02
54  */
55 #define VA_DRI_MAJOR_VERSION    4
56 #define VA_DRI_MINOR_VERSION    1
57 #define VA_DRI_PATCH_VERSION    0
58
59 typedef struct _VA_DRIQueryVersion {
60     CARD8       reqType;                /* always DRIReqCode */
61     CARD8       driReqType;             /* always X_DRIQueryVersion */
62     CARD16      length B16;
63 } xVA_DRIQueryVersionReq;
64 #define sz_xVA_DRIQueryVersionReq       4
65
66 typedef struct {
67     BYTE        type;                   /* X_Reply */
68     BOOL        pad1;
69     CARD16      sequenceNumber B16;
70     CARD32      length B32;
71     CARD16      majorVersion B16;       /* major version of DRI protocol */
72     CARD16      minorVersion B16;       /* minor version of DRI protocol */
73     CARD32      patchVersion B32;       /* patch version of DRI protocol */
74     CARD32      pad3 B32;
75     CARD32      pad4 B32;
76     CARD32      pad5 B32;
77     CARD32      pad6 B32;
78 } xVA_DRIQueryVersionReply;
79 #define sz_xVA_DRIQueryVersionReply     32
80
81 typedef struct _VA_DRIQueryDirectRenderingCapable {
82     CARD8       reqType;                /* always DRIReqCode */
83     CARD8       driReqType;             /* X_DRIQueryDirectRenderingCapable */
84     CARD16      length B16;
85     CARD32      screen B32;
86 } xVA_DRIQueryDirectRenderingCapableReq;
87 #define sz_xVA_DRIQueryDirectRenderingCapableReq        8
88
89 typedef struct {
90     BYTE        type;                   /* X_Reply */
91     BOOL        pad1;
92     CARD16      sequenceNumber B16;
93     CARD32      length B32;
94     BOOL        isCapable;
95     BOOL        pad2;
96     BOOL        pad3;
97     BOOL        pad4;
98     CARD32      pad5 B32;
99     CARD32      pad6 B32;
100     CARD32      pad7 B32;
101     CARD32      pad8 B32;
102     CARD32      pad9 B32;
103 } xVA_DRIQueryDirectRenderingCapableReply;
104 #define sz_xVA_DRIQueryDirectRenderingCapableReply      32
105
106 typedef struct _VA_DRIOpenConnection {
107     CARD8       reqType;                /* always DRIReqCode */
108     CARD8       driReqType;             /* always X_DRIOpenConnection */
109     CARD16      length B16;
110     CARD32      screen B32;
111 } xVA_DRIOpenConnectionReq;
112 #define sz_xVA_DRIOpenConnectionReq     8
113
114 typedef struct {
115     BYTE        type;                   /* X_Reply */
116     BOOL        pad1;
117     CARD16      sequenceNumber B16;
118     CARD32      length B32;
119     CARD32      hSAREALow B32;
120     CARD32      hSAREAHigh B32;
121     CARD32      busIdStringLength B32;
122     CARD32      pad6 B32;
123     CARD32      pad7 B32;
124     CARD32      pad8 B32;
125 } xVA_DRIOpenConnectionReply;
126 #define sz_xVA_DRIOpenConnectionReply   32
127
128 typedef struct _VA_DRIAuthConnection {
129     CARD8       reqType;                /* always DRIReqCode */
130     CARD8       driReqType;             /* always X_DRICloseConnection */
131     CARD16      length B16;
132     CARD32      screen B32;
133     CARD32      magic B32;
134 } xVA_DRIAuthConnectionReq;
135 #define sz_xVA_DRIAuthConnectionReq     12
136
137 typedef struct {
138     BYTE        type;
139     BOOL        pad1;
140     CARD16      sequenceNumber B16;
141     CARD32      length B32;
142     CARD32      authenticated B32;
143     CARD32      pad2 B32;
144     CARD32      pad3 B32;
145     CARD32      pad4 B32;
146     CARD32      pad5 B32;
147     CARD32      pad6 B32;
148 } xVA_DRIAuthConnectionReply;
149 #define zx_xVA_DRIAuthConnectionReply  32
150
151 typedef struct _VA_DRICloseConnection {
152     CARD8       reqType;                /* always DRIReqCode */
153     CARD8       driReqType;             /* always X_DRICloseConnection */
154     CARD16      length B16;
155     CARD32      screen B32;
156 } xVA_DRICloseConnectionReq;
157 #define sz_xVA_DRICloseConnectionReq    8
158
159 typedef struct _VA_DRIGetClientDriverName {
160     CARD8       reqType;                /* always DRIReqCode */
161     CARD8       driReqType;             /* always X_DRIGetClientDriverName */
162     CARD16      length B16;
163     CARD32      screen B32;
164 } xVA_DRIGetClientDriverNameReq;
165 #define sz_xVA_DRIGetClientDriverNameReq        8
166
167 typedef struct {
168     BYTE        type;                   /* X_Reply */
169     BOOL        pad1;
170     CARD16      sequenceNumber B16;
171     CARD32      length B32;
172     CARD32      ddxDriverMajorVersion B32;
173     CARD32      ddxDriverMinorVersion B32;
174     CARD32      ddxDriverPatchVersion B32;
175     CARD32      clientDriverNameLength B32;
176     CARD32      pad5 B32;
177     CARD32      pad6 B32;
178 } xVA_DRIGetClientDriverNameReply;
179 #define sz_xVA_DRIGetClientDriverNameReply      32
180
181 typedef struct _VA_DRICreateContext {
182     CARD8       reqType;                /* always DRIReqCode */
183     CARD8       driReqType;             /* always X_DRICreateContext */
184     CARD16      length B16;
185     CARD32      screen B32;
186     CARD32      visual B32;
187     CARD32      context B32;
188 } xVA_DRICreateContextReq;
189 #define sz_xVA_DRICreateContextReq      16
190
191 typedef struct {
192     BYTE        type;                   /* X_Reply */
193     BOOL        pad1;
194     CARD16      sequenceNumber B16;
195     CARD32      length B32;
196     CARD32      hHWContext B32;
197     CARD32      pad2 B32;
198     CARD32      pad3 B32;
199     CARD32      pad4 B32;
200     CARD32      pad5 B32;
201     CARD32      pad6 B32;
202 } xVA_DRICreateContextReply;
203 #define sz_xVA_DRICreateContextReply    32
204
205 typedef struct _VA_DRIDestroyContext {
206     CARD8       reqType;                /* always DRIReqCode */
207     CARD8       driReqType;             /* always X_DRIDestroyContext */
208     CARD16      length B16;
209     CARD32      screen B32;
210     CARD32      context B32;
211 } xVA_DRIDestroyContextReq;
212 #define sz_xVA_DRIDestroyContextReq     12
213
214 typedef struct _VA_DRICreateDrawable {
215     CARD8       reqType;                /* always DRIReqCode */
216     CARD8       driReqType;             /* always X_DRICreateDrawable */
217     CARD16      length B16;
218     CARD32      screen B32;
219     CARD32      drawable B32;
220 } xVA_DRICreateDrawableReq;
221 #define sz_xVA_DRICreateDrawableReq     12
222
223 typedef struct {
224     BYTE        type;                   /* X_Reply */
225     BOOL        pad1;
226     CARD16      sequenceNumber B16;
227     CARD32      length B32;
228     CARD32      hHWDrawable B32;
229     CARD32      pad2 B32;
230     CARD32      pad3 B32;
231     CARD32      pad4 B32;
232     CARD32      pad5 B32;
233     CARD32      pad6 B32;
234 } xVA_DRICreateDrawableReply;
235 #define sz_xVA_DRICreateDrawableReply   32
236
237 typedef struct _VA_DRIDestroyDrawable {
238     CARD8       reqType;                /* always DRIReqCode */
239     CARD8       driReqType;             /* always X_DRIDestroyDrawable */
240     CARD16      length B16;
241     CARD32      screen B32;
242     CARD32      drawable B32;
243 } xVA_DRIDestroyDrawableReq;
244 #define sz_xVA_DRIDestroyDrawableReq    12
245
246 typedef struct _VA_DRIGetDrawableInfo {
247     CARD8       reqType;                /* always DRIReqCode */
248     CARD8       driReqType;             /* always X_DRIGetDrawableInfo */
249     CARD16      length B16;
250     CARD32      screen B32;
251     CARD32      drawable B32;
252 } xVA_DRIGetDrawableInfoReq;
253 #define sz_xVA_DRIGetDrawableInfoReq    12
254
255 typedef struct {
256     BYTE        type;                   /* X_Reply */
257     BOOL        pad1;
258     CARD16      sequenceNumber B16;
259     CARD32      length B32;
260     CARD32      drawableTableIndex B32;
261     CARD32      drawableTableStamp B32;
262     INT16       drawableX B16;
263     INT16       drawableY B16;
264     INT16       drawableWidth B16;
265     INT16       drawableHeight B16;
266     CARD32      numClipRects B32;
267     INT16       backX B16;
268     INT16       backY B16;
269     CARD32      numBackClipRects B32;
270 } xVA_DRIGetDrawableInfoReply;
271
272 #define sz_xVA_DRIGetDrawableInfoReply  36
273
274
275 typedef struct _VA_DRIGetDeviceInfo {
276     CARD8       reqType;                /* always DRIReqCode */
277     CARD8       driReqType;             /* always X_DRIGetDeviceInfo */
278     CARD16      length B16;
279     CARD32      screen B32;
280 } xVA_DRIGetDeviceInfoReq;
281 #define sz_xVA_DRIGetDeviceInfoReq      8
282
283 typedef struct {
284     BYTE        type;                   /* X_Reply */
285     BOOL        pad1;
286     CARD16      sequenceNumber B16;
287     CARD32      length B32;
288     CARD32      hFrameBufferLow B32;
289     CARD32      hFrameBufferHigh B32;
290     CARD32      framebufferOrigin B32;
291     CARD32      framebufferSize B32;
292     CARD32      framebufferStride B32;
293     CARD32      devPrivateSize B32;
294 } xVA_DRIGetDeviceInfoReply;
295 #define sz_xVA_DRIGetDeviceInfoReply    32
296
297 typedef struct _VA_DRIOpenFullScreen {
298     CARD8       reqType;        /* always DRIReqCode */
299     CARD8       driReqType;     /* always X_DRIOpenFullScreen */
300     CARD16      length B16;
301     CARD32      screen B32;
302     CARD32      drawable B32;
303 } xVA_DRIOpenFullScreenReq;
304 #define sz_xVA_DRIOpenFullScreenReq    12
305
306 typedef struct {
307     BYTE        type;
308     BOOL        pad1;
309     CARD16      sequenceNumber B16;
310     CARD32      length B32;
311     CARD32      isFullScreen B32;
312     CARD32      pad2 B32;
313     CARD32      pad3 B32;
314     CARD32      pad4 B32;
315     CARD32      pad5 B32;
316     CARD32      pad6 B32;
317 } xVA_DRIOpenFullScreenReply;
318 #define sz_xVA_DRIOpenFullScreenReply  32
319
320 typedef struct _VA_DRICloseFullScreen {
321     CARD8       reqType;        /* always DRIReqCode */
322     CARD8       driReqType;     /* always X_DRICloseFullScreen */
323     CARD16      length B16;
324     CARD32      screen B32;
325     CARD32      drawable B32;
326 } xVA_DRICloseFullScreenReq;
327 #define sz_xVA_DRICloseFullScreenReq   12
328
329 typedef struct {
330     BYTE        type;
331     BOOL        pad1;
332     CARD16      sequenceNumber B16;
333     CARD32      length B32;
334     CARD32      pad2 B32;
335     CARD32      pad3 B32;
336     CARD32      pad4 B32;
337     CARD32      pad5 B32;
338     CARD32      pad6 B32;
339     CARD32      pad7 B32;
340 } xVA_DRICloseFullScreenReply;
341 #define sz_xVA_DRICloseFullScreenReply  32
342
343
344 #endif /* _VA_DRISTR_H_ */