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