1706f2543Smrg/************************************************************************** 2706f2543Smrg 3706f2543SmrgCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. 4706f2543SmrgCopyright 2000 VA Linux Systems, Inc. 5706f2543SmrgCopyright (c) 2002, 2008, 2009 Apple Computer, Inc. 6706f2543SmrgAll Rights Reserved. 7706f2543Smrg 8706f2543SmrgPermission is hereby granted, free of charge, to any person obtaining a 9706f2543Smrgcopy of this software and associated documentation files (the 10706f2543Smrg"Software"), to deal in the Software without restriction, including 11706f2543Smrgwithout limitation the rights to use, copy, modify, merge, publish, 12706f2543Smrgdistribute, sub license, and/or sell copies of the Software, and to 13706f2543Smrgpermit persons to whom the Software is furnished to do so, subject to 14706f2543Smrgthe following conditions: 15706f2543Smrg 16706f2543SmrgThe above copyright notice and this permission notice (including the 17706f2543Smrgnext paragraph) shall be included in all copies or substantial portions 18706f2543Smrgof the Software. 19706f2543Smrg 20706f2543SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 21706f2543SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22706f2543SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 23706f2543SmrgIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 24706f2543SmrgANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 25706f2543SmrgTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 26706f2543SmrgSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27706f2543Smrg 28706f2543Smrg**************************************************************************/ 29706f2543Smrg 30706f2543Smrg/* 31706f2543Smrg * Authors: 32706f2543Smrg * Kevin E. Martin <martin@valinux.com> 33706f2543Smrg * Jens Owen <jens@valinux.com> 34706f2543Smrg * Rickard E. (Rik) Fiath <faith@valinux.com> 35706f2543Smrg * 36706f2543Smrg */ 37706f2543Smrg 38706f2543Smrg#ifndef _APPLEDRISTR_H_ 39706f2543Smrg#define _APPLEDRISTR_H_ 40706f2543Smrg 41706f2543Smrg#include "appledri.h" 42706f2543Smrg 43706f2543Smrg#define APPLEDRINAME "Apple-DRI" 44706f2543Smrg 45706f2543Smrg#define APPLE_DRI_MAJOR_VERSION 1 /* current version numbers */ 46706f2543Smrg#define APPLE_DRI_MINOR_VERSION 0 47706f2543Smrg#define APPLE_DRI_PATCH_VERSION 0 48706f2543Smrg 49706f2543Smrgtypedef struct _AppleDRIQueryVersion { 50706f2543Smrg CARD8 reqType; /* always DRIReqCode */ 51706f2543Smrg CARD8 driReqType; /* always X_DRIQueryVersion */ 52706f2543Smrg CARD16 length B16; 53706f2543Smrg} xAppleDRIQueryVersionReq; 54706f2543Smrg#define sz_xAppleDRIQueryVersionReq 4 55706f2543Smrg 56706f2543Smrgtypedef struct { 57706f2543Smrg BYTE type; /* X_Reply */ 58706f2543Smrg BOOL pad1; 59706f2543Smrg CARD16 sequenceNumber B16; 60706f2543Smrg CARD32 length B32; 61706f2543Smrg CARD16 majorVersion B16; /* major version of DRI protocol */ 62706f2543Smrg CARD16 minorVersion B16; /* minor version of DRI protocol */ 63706f2543Smrg CARD32 patchVersion B32; /* patch version of DRI protocol */ 64706f2543Smrg CARD32 pad3 B32; 65706f2543Smrg CARD32 pad4 B32; 66706f2543Smrg CARD32 pad5 B32; 67706f2543Smrg CARD32 pad6 B32; 68706f2543Smrg} xAppleDRIQueryVersionReply; 69706f2543Smrg#define sz_xAppleDRIQueryVersionReply 32 70706f2543Smrg 71706f2543Smrgtypedef struct _AppleDRIQueryDirectRenderingCapable { 72706f2543Smrg CARD8 reqType; /* always DRIReqCode */ 73706f2543Smrg CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ 74706f2543Smrg CARD16 length B16; 75706f2543Smrg CARD32 screen B32; 76706f2543Smrg} xAppleDRIQueryDirectRenderingCapableReq; 77706f2543Smrg#define sz_xAppleDRIQueryDirectRenderingCapableReq 8 78706f2543Smrg 79706f2543Smrgtypedef struct { 80706f2543Smrg BYTE type; /* X_Reply */ 81706f2543Smrg BOOL pad1; 82706f2543Smrg CARD16 sequenceNumber B16; 83706f2543Smrg CARD32 length B32; 84706f2543Smrg BOOL isCapable; 85706f2543Smrg BOOL pad2; 86706f2543Smrg BOOL pad3; 87706f2543Smrg BOOL pad4; 88706f2543Smrg CARD32 pad5 B32; 89706f2543Smrg CARD32 pad6 B32; 90706f2543Smrg CARD32 pad7 B32; 91706f2543Smrg CARD32 pad8 B32; 92706f2543Smrg CARD32 pad9 B32; 93706f2543Smrg} xAppleDRIQueryDirectRenderingCapableReply; 94706f2543Smrg#define sz_xAppleDRIQueryDirectRenderingCapableReply 32 95706f2543Smrg 96706f2543Smrgtypedef struct _AppleDRIAuthConnection { 97706f2543Smrg CARD8 reqType; /* always DRIReqCode */ 98706f2543Smrg CARD8 driReqType; /* always X_DRICloseConnection */ 99706f2543Smrg CARD16 length B16; 100706f2543Smrg CARD32 screen B32; 101706f2543Smrg CARD32 magic B32; 102706f2543Smrg} xAppleDRIAuthConnectionReq; 103706f2543Smrg#define sz_xAppleDRIAuthConnectionReq 12 104706f2543Smrg 105706f2543Smrgtypedef struct { 106706f2543Smrg BYTE type; 107706f2543Smrg BOOL pad1; 108706f2543Smrg CARD16 sequenceNumber B16; 109706f2543Smrg CARD32 length B32; 110706f2543Smrg CARD32 authenticated B32; 111706f2543Smrg CARD32 pad2 B32; 112706f2543Smrg CARD32 pad3 B32; 113706f2543Smrg CARD32 pad4 B32; 114706f2543Smrg CARD32 pad5 B32; 115706f2543Smrg CARD32 pad6 B32; 116706f2543Smrg} xAppleDRIAuthConnectionReply; 117706f2543Smrg#define zx_xAppleDRIAuthConnectionReply 32 118706f2543Smrg 119706f2543Smrgtypedef struct _AppleDRICreateSurface { 120706f2543Smrg CARD8 reqType; /* always DRIReqCode */ 121706f2543Smrg CARD8 driReqType; /* always X_DRICreateSurface */ 122706f2543Smrg CARD16 length B16; 123706f2543Smrg CARD32 screen B32; 124706f2543Smrg CARD32 drawable B32; 125706f2543Smrg CARD32 client_id B32; 126706f2543Smrg} xAppleDRICreateSurfaceReq; 127706f2543Smrg#define sz_xAppleDRICreateSurfaceReq 16 128706f2543Smrg 129706f2543Smrgtypedef struct { 130706f2543Smrg BYTE type; /* X_Reply */ 131706f2543Smrg BOOL pad1; 132706f2543Smrg CARD16 sequenceNumber B16; 133706f2543Smrg CARD32 length B32; 134706f2543Smrg CARD32 key_0 B32; 135706f2543Smrg CARD32 key_1 B32; 136706f2543Smrg CARD32 uid B32; 137706f2543Smrg CARD32 pad4 B32; 138706f2543Smrg CARD32 pad5 B32; 139706f2543Smrg CARD32 pad6 B32; 140706f2543Smrg} xAppleDRICreateSurfaceReply; 141706f2543Smrg#define sz_xAppleDRICreateSurfaceReply 32 142706f2543Smrg 143706f2543Smrgtypedef struct _AppleDRIDestroySurface { 144706f2543Smrg CARD8 reqType; /* always DRIReqCode */ 145706f2543Smrg CARD8 driReqType; /* always X_DRIDestroySurface */ 146706f2543Smrg CARD16 length B16; 147706f2543Smrg CARD32 screen B32; 148706f2543Smrg CARD32 drawable B32; 149706f2543Smrg} xAppleDRIDestroySurfaceReq; 150706f2543Smrg#define sz_xAppleDRIDestroySurfaceReq 12 151706f2543Smrg 152706f2543Smrgtypedef struct _AppleDRINotify { 153706f2543Smrg BYTE type; /* always eventBase + event type */ 154706f2543Smrg BYTE kind; 155706f2543Smrg CARD16 sequenceNumber B16; 156706f2543Smrg CARD32 time B32; /* time of change */ 157706f2543Smrg CARD32 pad1 B32; 158706f2543Smrg CARD32 arg B32; 159706f2543Smrg CARD32 pad3 B32; 160706f2543Smrg CARD32 pad4 B32; 161706f2543Smrg CARD32 pad5 B32; 162706f2543Smrg CARD32 pad6 B32; 163706f2543Smrg} xAppleDRINotifyEvent; 164706f2543Smrg#define sz_xAppleDRINotifyEvent 32 165706f2543Smrg 166706f2543Smrg 167706f2543Smrgtypedef struct { 168706f2543Smrg CARD8 reqType; 169706f2543Smrg CARD8 driReqType; 170706f2543Smrg CARD16 length B16; 171706f2543Smrg CARD32 screen B32; 172706f2543Smrg CARD32 drawable B32; 173706f2543Smrg BOOL doubleSwap; 174706f2543Smrg CARD8 pad1, pad2, pad3; 175706f2543Smrg} xAppleDRICreateSharedBufferReq; 176706f2543Smrg 177706f2543Smrg#define sz_xAppleDRICreateSharedBufferReq 16 178706f2543Smrg 179706f2543Smrgtypedef struct { 180706f2543Smrg BYTE type; 181706f2543Smrg BYTE data1; 182706f2543Smrg CARD16 sequenceNumber B16; 183706f2543Smrg CARD32 length B32; 184706f2543Smrg CARD32 stringLength B32; /* 0 on error */ 185706f2543Smrg CARD32 width B32; 186706f2543Smrg CARD32 height B32; 187706f2543Smrg CARD32 pad1 B32; 188706f2543Smrg CARD32 pad2 B32; 189706f2543Smrg CARD32 pad3 B32; 190706f2543Smrg} xAppleDRICreateSharedBufferReply; 191706f2543Smrg 192706f2543Smrg#define sz_xAppleDRICreateSharedBufferReply 32 193706f2543Smrg 194706f2543Smrgtypedef struct { 195706f2543Smrg CARD8 reqType; 196706f2543Smrg CARD8 driReqType; 197706f2543Smrg CARD16 length B16; 198706f2543Smrg CARD32 screen B32; 199706f2543Smrg CARD32 drawable B32; 200706f2543Smrg} xAppleDRISwapBuffersReq; 201706f2543Smrg 202706f2543Smrg#define sz_xAppleDRISwapBuffersReq 12 203706f2543Smrg 204706f2543Smrgtypedef struct { 205706f2543Smrg CARD8 reqType; /*1*/ 206706f2543Smrg CARD8 driReqType; /*2*/ 207706f2543Smrg CARD16 length B16; /*4*/ 208706f2543Smrg CARD32 screen B32; /*8*/ 209706f2543Smrg CARD32 drawable B32; /*12*/ 210706f2543Smrg} xAppleDRICreatePixmapReq; 211706f2543Smrg 212706f2543Smrg#define sz_xAppleDRICreatePixmapReq 12 213706f2543Smrg 214706f2543Smrgtypedef struct { 215706f2543Smrg BYTE type; /*1*/ 216706f2543Smrg BOOL pad1; /*2*/ 217706f2543Smrg CARD16 sequenceNumber B16; /*4*/ 218706f2543Smrg CARD32 length B32; /*8*/ 219706f2543Smrg CARD32 width B32; /*12*/ 220706f2543Smrg CARD32 height B32; /*16*/ 221706f2543Smrg CARD32 pitch B32; /*20*/ 222706f2543Smrg CARD32 bpp B32; /*24*/ 223706f2543Smrg CARD32 size B32; /*28*/ 224706f2543Smrg CARD32 stringLength B32; /*32*/ 225706f2543Smrg} xAppleDRICreatePixmapReply; 226706f2543Smrg 227706f2543Smrg#define sz_xAppleDRICreatePixmapReply 32 228706f2543Smrg 229706f2543Smrgtypedef struct { 230706f2543Smrg CARD8 reqType; /*1*/ 231706f2543Smrg CARD8 driReqType; /*2*/ 232706f2543Smrg CARD16 length B16; /*4*/ 233706f2543Smrg CARD32 drawable B32; /*8*/ 234706f2543Smrg} xAppleDRIDestroyPixmapReq; 235706f2543Smrg 236706f2543Smrg#define sz_xAppleDRIDestroyPixmapReq 8 237706f2543Smrg 238706f2543Smrg#ifdef _APPLEDRI_SERVER_ 239706f2543Smrg 240706f2543Smrgvoid AppleDRISendEvent ( 241706f2543Smrg#if NeedFunctionPrototypes 242706f2543Smrg int /* type */, 243706f2543Smrg unsigned int /* mask */, 244706f2543Smrg int /* which */, 245706f2543Smrg int /* arg */ 246706f2543Smrg#endif 247706f2543Smrg); 248706f2543Smrg 249706f2543Smrg#endif /* _APPLEDRI_SERVER_ */ 250706f2543Smrg#endif /* _APPLEDRISTR_H_ */ 251