xref: /OK3568_Linux_fs/external/xserver/hw/xquartz/xpr/appledristr.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /**************************************************************************
2*4882a593Smuzhiyun 
3*4882a593Smuzhiyun    Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
4*4882a593Smuzhiyun    Copyright 2000 VA Linux Systems, Inc.
5*4882a593Smuzhiyun    Copyright (c) 2002-2012 Apple Computer, Inc.
6*4882a593Smuzhiyun    All Rights Reserved.
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun    Permission is hereby granted, free of charge, to any person obtaining a
9*4882a593Smuzhiyun    copy of this software and associated documentation files (the
10*4882a593Smuzhiyun    "Software"), to deal in the Software without restriction, including
11*4882a593Smuzhiyun    without limitation the rights to use, copy, modify, merge, publish,
12*4882a593Smuzhiyun    distribute, sub license, and/or sell copies of the Software, and to
13*4882a593Smuzhiyun    permit persons to whom the Software is furnished to do so, subject to
14*4882a593Smuzhiyun    the following conditions:
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun    The above copyright notice and this permission notice (including the
17*4882a593Smuzhiyun    next paragraph) shall be included in all copies or substantial portions
18*4882a593Smuzhiyun    of the Software.
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21*4882a593Smuzhiyun    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22*4882a593Smuzhiyun    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
23*4882a593Smuzhiyun    IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
24*4882a593Smuzhiyun    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25*4882a593Smuzhiyun    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26*4882a593Smuzhiyun    SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun **************************************************************************/
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun /*
31*4882a593Smuzhiyun  * Authors:
32*4882a593Smuzhiyun  *   Kevin E. Martin <martin@valinux.com>
33*4882a593Smuzhiyun  *   Jens Owen <jens@valinux.com>
34*4882a593Smuzhiyun  *   Rickard E. (Rik) Fiath <faith@valinux.com>
35*4882a593Smuzhiyun  *   Jeremy Huddleston <jeremyhu@apple.com>
36*4882a593Smuzhiyun  *
37*4882a593Smuzhiyun  */
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #ifndef _APPLEDRISTR_H_
40*4882a593Smuzhiyun #define _APPLEDRISTR_H_
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #include "appledri.h"
43*4882a593Smuzhiyun 
44*4882a593Smuzhiyun #define APPLEDRINAME            "Apple-DRI"
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #define APPLE_DRI_MAJOR_VERSION 1       /* current version numbers */
47*4882a593Smuzhiyun #define APPLE_DRI_MINOR_VERSION 0
48*4882a593Smuzhiyun #define APPLE_DRI_PATCH_VERSION 0
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun typedef struct _AppleDRIQueryVersion {
51*4882a593Smuzhiyun     CARD8 reqType;               /* always DRIReqCode */
52*4882a593Smuzhiyun     CARD8 driReqType;            /* always X_DRIQueryVersion */
53*4882a593Smuzhiyun     CARD16 length B16;
54*4882a593Smuzhiyun } xAppleDRIQueryVersionReq;
55*4882a593Smuzhiyun #define sz_xAppleDRIQueryVersionReq 4
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun typedef struct {
58*4882a593Smuzhiyun     BYTE type;                   /* X_Reply */
59*4882a593Smuzhiyun     BOOL pad1;
60*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
61*4882a593Smuzhiyun     CARD32 length B32;
62*4882a593Smuzhiyun     CARD16 majorVersion B16;     /* major version of DRI protocol */
63*4882a593Smuzhiyun     CARD16 minorVersion B16;     /* minor version of DRI protocol */
64*4882a593Smuzhiyun     CARD32 patchVersion B32;     /* patch version of DRI protocol */
65*4882a593Smuzhiyun     CARD32 pad3 B32;
66*4882a593Smuzhiyun     CARD32 pad4 B32;
67*4882a593Smuzhiyun     CARD32 pad5 B32;
68*4882a593Smuzhiyun     CARD32 pad6 B32;
69*4882a593Smuzhiyun } xAppleDRIQueryVersionReply;
70*4882a593Smuzhiyun #define sz_xAppleDRIQueryVersionReply 32
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun typedef struct _AppleDRIQueryDirectRenderingCapable {
73*4882a593Smuzhiyun     CARD8 reqType;               /* always DRIReqCode */
74*4882a593Smuzhiyun     CARD8 driReqType;            /* X_DRIQueryDirectRenderingCapable */
75*4882a593Smuzhiyun     CARD16 length B16;
76*4882a593Smuzhiyun     CARD32 screen B32;
77*4882a593Smuzhiyun } xAppleDRIQueryDirectRenderingCapableReq;
78*4882a593Smuzhiyun #define sz_xAppleDRIQueryDirectRenderingCapableReq 8
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun typedef struct {
81*4882a593Smuzhiyun     BYTE type;                   /* X_Reply */
82*4882a593Smuzhiyun     BOOL pad1;
83*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
84*4882a593Smuzhiyun     CARD32 length B32;
85*4882a593Smuzhiyun     BOOL isCapable;
86*4882a593Smuzhiyun     BOOL pad2;
87*4882a593Smuzhiyun     BOOL pad3;
88*4882a593Smuzhiyun     BOOL pad4;
89*4882a593Smuzhiyun     CARD32 pad5 B32;
90*4882a593Smuzhiyun     CARD32 pad6 B32;
91*4882a593Smuzhiyun     CARD32 pad7 B32;
92*4882a593Smuzhiyun     CARD32 pad8 B32;
93*4882a593Smuzhiyun     CARD32 pad9 B32;
94*4882a593Smuzhiyun } xAppleDRIQueryDirectRenderingCapableReply;
95*4882a593Smuzhiyun #define sz_xAppleDRIQueryDirectRenderingCapableReply 32
96*4882a593Smuzhiyun 
97*4882a593Smuzhiyun typedef struct _AppleDRIAuthConnection {
98*4882a593Smuzhiyun     CARD8 reqType;               /* always DRIReqCode */
99*4882a593Smuzhiyun     CARD8 driReqType;            /* always X_DRICloseConnection */
100*4882a593Smuzhiyun     CARD16 length B16;
101*4882a593Smuzhiyun     CARD32 screen B32;
102*4882a593Smuzhiyun     CARD32 magic B32;
103*4882a593Smuzhiyun } xAppleDRIAuthConnectionReq;
104*4882a593Smuzhiyun #define sz_xAppleDRIAuthConnectionReq 12
105*4882a593Smuzhiyun 
106*4882a593Smuzhiyun typedef struct {
107*4882a593Smuzhiyun     BYTE type;
108*4882a593Smuzhiyun     BOOL pad1;
109*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
110*4882a593Smuzhiyun     CARD32 length B32;
111*4882a593Smuzhiyun     CARD32 authenticated B32;
112*4882a593Smuzhiyun     CARD32 pad2 B32;
113*4882a593Smuzhiyun     CARD32 pad3 B32;
114*4882a593Smuzhiyun     CARD32 pad4 B32;
115*4882a593Smuzhiyun     CARD32 pad5 B32;
116*4882a593Smuzhiyun     CARD32 pad6 B32;
117*4882a593Smuzhiyun } xAppleDRIAuthConnectionReply;
118*4882a593Smuzhiyun #define zx_xAppleDRIAuthConnectionReply 32
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun typedef struct _AppleDRICreateSurface {
121*4882a593Smuzhiyun     CARD8 reqType;               /* always DRIReqCode */
122*4882a593Smuzhiyun     CARD8 driReqType;            /* always X_DRICreateSurface */
123*4882a593Smuzhiyun     CARD16 length B16;
124*4882a593Smuzhiyun     CARD32 screen B32;
125*4882a593Smuzhiyun     CARD32 drawable B32;
126*4882a593Smuzhiyun     CARD32 client_id B32;
127*4882a593Smuzhiyun } xAppleDRICreateSurfaceReq;
128*4882a593Smuzhiyun #define sz_xAppleDRICreateSurfaceReq 16
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun typedef struct {
131*4882a593Smuzhiyun     BYTE type;                   /* X_Reply */
132*4882a593Smuzhiyun     BOOL pad1;
133*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
134*4882a593Smuzhiyun     CARD32 length B32;
135*4882a593Smuzhiyun     CARD32 key_0 B32;
136*4882a593Smuzhiyun     CARD32 key_1 B32;
137*4882a593Smuzhiyun     CARD32 uid B32;
138*4882a593Smuzhiyun     CARD32 pad4 B32;
139*4882a593Smuzhiyun     CARD32 pad5 B32;
140*4882a593Smuzhiyun     CARD32 pad6 B32;
141*4882a593Smuzhiyun } xAppleDRICreateSurfaceReply;
142*4882a593Smuzhiyun #define sz_xAppleDRICreateSurfaceReply 32
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun typedef struct _AppleDRIDestroySurface {
145*4882a593Smuzhiyun     CARD8 reqType;               /* always DRIReqCode */
146*4882a593Smuzhiyun     CARD8 driReqType;            /* always X_DRIDestroySurface */
147*4882a593Smuzhiyun     CARD16 length B16;
148*4882a593Smuzhiyun     CARD32 screen B32;
149*4882a593Smuzhiyun     CARD32 drawable B32;
150*4882a593Smuzhiyun } xAppleDRIDestroySurfaceReq;
151*4882a593Smuzhiyun #define sz_xAppleDRIDestroySurfaceReq 12
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun typedef struct _AppleDRINotify {
154*4882a593Smuzhiyun     BYTE type;                   /* always eventBase + event type */
155*4882a593Smuzhiyun     BYTE kind;
156*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
157*4882a593Smuzhiyun     CARD32 time B32;             /* time of change */
158*4882a593Smuzhiyun     CARD32 pad1 B32;
159*4882a593Smuzhiyun     CARD32 arg B32;
160*4882a593Smuzhiyun     CARD32 pad3 B32;
161*4882a593Smuzhiyun     CARD32 pad4 B32;
162*4882a593Smuzhiyun     CARD32 pad5 B32;
163*4882a593Smuzhiyun     CARD32 pad6 B32;
164*4882a593Smuzhiyun } xAppleDRINotifyEvent;
165*4882a593Smuzhiyun #define sz_xAppleDRINotifyEvent 32
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun typedef struct {
168*4882a593Smuzhiyun     CARD8 reqType;
169*4882a593Smuzhiyun     CARD8 driReqType;
170*4882a593Smuzhiyun     CARD16 length B16;
171*4882a593Smuzhiyun     CARD32 screen B32;
172*4882a593Smuzhiyun     CARD32 drawable B32;
173*4882a593Smuzhiyun     BOOL doubleSwap;
174*4882a593Smuzhiyun     CARD8 pad1, pad2, pad3;
175*4882a593Smuzhiyun } xAppleDRICreateSharedBufferReq;
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun #define sz_xAppleDRICreateSharedBufferReq 16
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun typedef struct {
180*4882a593Smuzhiyun     BYTE type;
181*4882a593Smuzhiyun     BYTE data1;
182*4882a593Smuzhiyun     CARD16 sequenceNumber B16;
183*4882a593Smuzhiyun     CARD32 length B32;
184*4882a593Smuzhiyun     CARD32 stringLength B32;     /* 0 on error */
185*4882a593Smuzhiyun     CARD32 width B32;
186*4882a593Smuzhiyun     CARD32 height B32;
187*4882a593Smuzhiyun     CARD32 pad1 B32;
188*4882a593Smuzhiyun     CARD32 pad2 B32;
189*4882a593Smuzhiyun     CARD32 pad3 B32;
190*4882a593Smuzhiyun } xAppleDRICreateSharedBufferReply;
191*4882a593Smuzhiyun 
192*4882a593Smuzhiyun #define sz_xAppleDRICreateSharedBufferReply 32
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun typedef struct {
195*4882a593Smuzhiyun     CARD8 reqType;
196*4882a593Smuzhiyun     CARD8 driReqType;
197*4882a593Smuzhiyun     CARD16 length B16;
198*4882a593Smuzhiyun     CARD32 screen B32;
199*4882a593Smuzhiyun     CARD32 drawable B32;
200*4882a593Smuzhiyun } xAppleDRISwapBuffersReq;
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun #define sz_xAppleDRISwapBuffersReq 12
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun typedef struct {
205*4882a593Smuzhiyun     CARD8 reqType;               /*1 */
206*4882a593Smuzhiyun     CARD8 driReqType;            /*2 */
207*4882a593Smuzhiyun     CARD16 length B16;           /*4 */
208*4882a593Smuzhiyun     CARD32 screen B32;           /*8 */
209*4882a593Smuzhiyun     CARD32 drawable B32;         /*12 */
210*4882a593Smuzhiyun } xAppleDRICreatePixmapReq;
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun #define sz_xAppleDRICreatePixmapReq 12
213*4882a593Smuzhiyun 
214*4882a593Smuzhiyun typedef struct {
215*4882a593Smuzhiyun     BYTE type;                   /*1 */
216*4882a593Smuzhiyun     BOOL pad1;                   /*2 */
217*4882a593Smuzhiyun     CARD16 sequenceNumber B16;   /*4 */
218*4882a593Smuzhiyun     CARD32 length B32;           /*8 */
219*4882a593Smuzhiyun     CARD32 width B32;            /*12 */
220*4882a593Smuzhiyun     CARD32 height B32;           /*16 */
221*4882a593Smuzhiyun     CARD32 pitch B32;            /*20 */
222*4882a593Smuzhiyun     CARD32 bpp B32;              /*24 */
223*4882a593Smuzhiyun     CARD32 size B32;             /*28 */
224*4882a593Smuzhiyun     CARD32 stringLength B32;     /*32 */
225*4882a593Smuzhiyun } xAppleDRICreatePixmapReply;
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun #define sz_xAppleDRICreatePixmapReply 32
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun typedef struct {
230*4882a593Smuzhiyun     CARD8 reqType;               /*1 */
231*4882a593Smuzhiyun     CARD8 driReqType;            /*2 */
232*4882a593Smuzhiyun     CARD16 length B16;           /*4 */
233*4882a593Smuzhiyun     CARD32 drawable B32;         /*8 */
234*4882a593Smuzhiyun } xAppleDRIDestroyPixmapReq;
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun #define sz_xAppleDRIDestroyPixmapReq 8
237*4882a593Smuzhiyun 
238*4882a593Smuzhiyun #ifdef _APPLEDRI_SERVER_
239*4882a593Smuzhiyun 
240*4882a593Smuzhiyun void AppleDRISendEvent(
241*4882a593Smuzhiyun #if NeedFunctionPrototypes
242*4882a593Smuzhiyun     int /* type */,
243*4882a593Smuzhiyun     unsigned int /* mask */,
244*4882a593Smuzhiyun     int /* which */,
245*4882a593Smuzhiyun     int                       /* arg */
246*4882a593Smuzhiyun #endif
247*4882a593Smuzhiyun     );
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun #endif /* _APPLEDRI_SERVER_ */
250*4882a593Smuzhiyun #endif /* _APPLEDRISTR_H_ */
251