13464ebd5Sriastradh/************************************************************************** 23464ebd5Sriastradh 33464ebd5SriastradhCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. 43464ebd5SriastradhCopyright 2000 VA Linux Systems, Inc. 53464ebd5SriastradhCopyright (c) 2002, 2008, 2009 Apple Computer, Inc. 63464ebd5SriastradhAll Rights Reserved. 73464ebd5Sriastradh 83464ebd5SriastradhPermission is hereby granted, free of charge, to any person obtaining a 93464ebd5Sriastradhcopy of this software and associated documentation files (the 103464ebd5Sriastradh"Software"), to deal in the Software without restriction, including 113464ebd5Sriastradhwithout limitation the rights to use, copy, modify, merge, publish, 123464ebd5Sriastradhdistribute, sub license, and/or sell copies of the Software, and to 133464ebd5Sriastradhpermit persons to whom the Software is furnished to do so, subject to 143464ebd5Sriastradhthe following conditions: 153464ebd5Sriastradh 163464ebd5SriastradhThe above copyright notice and this permission notice (including the 173464ebd5Sriastradhnext paragraph) shall be included in all copies or substantial portions 183464ebd5Sriastradhof the Software. 193464ebd5Sriastradh 203464ebd5SriastradhTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 213464ebd5SriastradhOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 223464ebd5SriastradhMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 233464ebd5SriastradhIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 243464ebd5SriastradhANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 253464ebd5SriastradhTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 263464ebd5SriastradhSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 273464ebd5Sriastradh 283464ebd5Sriastradh**************************************************************************/ 293464ebd5Sriastradh 303464ebd5Sriastradh/* 313464ebd5Sriastradh * Authors: 323464ebd5Sriastradh * Kevin E. Martin <martin@valinux.com> 333464ebd5Sriastradh * Jens Owen <jens@valinux.com> 343464ebd5Sriastradh * Rickard E. (Rik) Fiath <faith@valinux.com> 353464ebd5Sriastradh * 363464ebd5Sriastradh */ 373464ebd5Sriastradh 383464ebd5Sriastradh#ifndef _APPLEDRISTR_H_ 393464ebd5Sriastradh#define _APPLEDRISTR_H_ 403464ebd5Sriastradh 413464ebd5Sriastradh#include "appledri.h" 423464ebd5Sriastradh 433464ebd5Sriastradh#define APPLEDRINAME "Apple-DRI" 443464ebd5Sriastradh 453464ebd5Sriastradh#define APPLE_DRI_MAJOR_VERSION 1 /* current version numbers */ 463464ebd5Sriastradh#define APPLE_DRI_MINOR_VERSION 0 473464ebd5Sriastradh#define APPLE_DRI_PATCH_VERSION 0 483464ebd5Sriastradh 493464ebd5Sriastradhtypedef struct _AppleDRIQueryVersion 503464ebd5Sriastradh{ 513464ebd5Sriastradh CARD8 reqType; /* always DRIReqCode */ 523464ebd5Sriastradh CARD8 driReqType; /* always X_DRIQueryVersion */ 533464ebd5Sriastradh CARD16 length B16; 543464ebd5Sriastradh} xAppleDRIQueryVersionReq; 553464ebd5Sriastradh#define sz_xAppleDRIQueryVersionReq 4 563464ebd5Sriastradh 573464ebd5Sriastradhtypedef struct 583464ebd5Sriastradh{ 593464ebd5Sriastradh BYTE type; /* X_Reply */ 603464ebd5Sriastradh BOOL pad1; 613464ebd5Sriastradh CARD16 sequenceNumber B16; 623464ebd5Sriastradh CARD32 length B32; 633464ebd5Sriastradh CARD16 majorVersion B16; /* major version of DRI protocol */ 643464ebd5Sriastradh CARD16 minorVersion B16; /* minor version of DRI protocol */ 653464ebd5Sriastradh CARD32 patchVersion B32; /* patch version of DRI protocol */ 663464ebd5Sriastradh CARD32 pad3 B32; 673464ebd5Sriastradh CARD32 pad4 B32; 683464ebd5Sriastradh CARD32 pad5 B32; 693464ebd5Sriastradh CARD32 pad6 B32; 703464ebd5Sriastradh} xAppleDRIQueryVersionReply; 713464ebd5Sriastradh#define sz_xAppleDRIQueryVersionReply 32 723464ebd5Sriastradh 733464ebd5Sriastradhtypedef struct _AppleDRIQueryDirectRenderingCapable 743464ebd5Sriastradh{ 753464ebd5Sriastradh CARD8 reqType; /* always DRIReqCode */ 763464ebd5Sriastradh CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ 773464ebd5Sriastradh CARD16 length B16; 783464ebd5Sriastradh CARD32 screen B32; 793464ebd5Sriastradh} xAppleDRIQueryDirectRenderingCapableReq; 803464ebd5Sriastradh#define sz_xAppleDRIQueryDirectRenderingCapableReq 8 813464ebd5Sriastradh 823464ebd5Sriastradhtypedef struct 833464ebd5Sriastradh{ 843464ebd5Sriastradh BYTE type; /* X_Reply */ 853464ebd5Sriastradh BOOL pad1; 863464ebd5Sriastradh CARD16 sequenceNumber B16; 873464ebd5Sriastradh CARD32 length B32; 883464ebd5Sriastradh BOOL isCapable; 893464ebd5Sriastradh BOOL pad2; 903464ebd5Sriastradh BOOL pad3; 913464ebd5Sriastradh BOOL pad4; 923464ebd5Sriastradh CARD32 pad5 B32; 933464ebd5Sriastradh CARD32 pad6 B32; 943464ebd5Sriastradh CARD32 pad7 B32; 953464ebd5Sriastradh CARD32 pad8 B32; 963464ebd5Sriastradh CARD32 pad9 B32; 973464ebd5Sriastradh} xAppleDRIQueryDirectRenderingCapableReply; 983464ebd5Sriastradh#define sz_xAppleDRIQueryDirectRenderingCapableReply 32 993464ebd5Sriastradh 1003464ebd5Sriastradhtypedef struct _AppleDRIAuthConnection 1013464ebd5Sriastradh{ 1023464ebd5Sriastradh CARD8 reqType; /* always DRIReqCode */ 1033464ebd5Sriastradh CARD8 driReqType; /* always X_DRICloseConnection */ 1043464ebd5Sriastradh CARD16 length B16; 1053464ebd5Sriastradh CARD32 screen B32; 1063464ebd5Sriastradh CARD32 magic B32; 1073464ebd5Sriastradh} xAppleDRIAuthConnectionReq; 1083464ebd5Sriastradh#define sz_xAppleDRIAuthConnectionReq 12 1093464ebd5Sriastradh 1103464ebd5Sriastradhtypedef struct 1113464ebd5Sriastradh{ 1123464ebd5Sriastradh BYTE type; 1133464ebd5Sriastradh BOOL pad1; 1143464ebd5Sriastradh CARD16 sequenceNumber B16; 1153464ebd5Sriastradh CARD32 length B32; 1163464ebd5Sriastradh CARD32 authenticated B32; 1173464ebd5Sriastradh CARD32 pad2 B32; 1183464ebd5Sriastradh CARD32 pad3 B32; 1193464ebd5Sriastradh CARD32 pad4 B32; 1203464ebd5Sriastradh CARD32 pad5 B32; 1213464ebd5Sriastradh CARD32 pad6 B32; 1223464ebd5Sriastradh} xAppleDRIAuthConnectionReply; 1233464ebd5Sriastradh#define zx_xAppleDRIAuthConnectionReply 32 1243464ebd5Sriastradh 1253464ebd5Sriastradhtypedef struct _AppleDRICreateSurface 1263464ebd5Sriastradh{ 1273464ebd5Sriastradh CARD8 reqType; /* always DRIReqCode */ 1283464ebd5Sriastradh CARD8 driReqType; /* always X_DRICreateSurface */ 1293464ebd5Sriastradh CARD16 length B16; 1303464ebd5Sriastradh CARD32 screen B32; 1313464ebd5Sriastradh CARD32 drawable B32; 1323464ebd5Sriastradh CARD32 client_id B32; 1333464ebd5Sriastradh} xAppleDRICreateSurfaceReq; 1343464ebd5Sriastradh#define sz_xAppleDRICreateSurfaceReq 16 1353464ebd5Sriastradh 1363464ebd5Sriastradhtypedef struct 1373464ebd5Sriastradh{ 1383464ebd5Sriastradh BYTE type; /* X_Reply */ 1393464ebd5Sriastradh BOOL pad1; 1403464ebd5Sriastradh CARD16 sequenceNumber B16; 1413464ebd5Sriastradh CARD32 length B32; 1423464ebd5Sriastradh CARD32 key_0 B32; 1433464ebd5Sriastradh CARD32 key_1 B32; 1443464ebd5Sriastradh CARD32 uid B32; 1453464ebd5Sriastradh CARD32 pad4 B32; 1463464ebd5Sriastradh CARD32 pad5 B32; 1473464ebd5Sriastradh CARD32 pad6 B32; 1483464ebd5Sriastradh} xAppleDRICreateSurfaceReply; 1493464ebd5Sriastradh#define sz_xAppleDRICreateSurfaceReply 32 1503464ebd5Sriastradh 1513464ebd5Sriastradhtypedef struct _AppleDRIDestroySurface 1523464ebd5Sriastradh{ 1533464ebd5Sriastradh CARD8 reqType; /* always DRIReqCode */ 1543464ebd5Sriastradh CARD8 driReqType; /* always X_DRIDestroySurface */ 1553464ebd5Sriastradh CARD16 length B16; 1563464ebd5Sriastradh CARD32 screen B32; 1573464ebd5Sriastradh CARD32 drawable B32; 1583464ebd5Sriastradh} xAppleDRIDestroySurfaceReq; 1593464ebd5Sriastradh#define sz_xAppleDRIDestroySurfaceReq 12 1603464ebd5Sriastradh 1613464ebd5Sriastradhtypedef struct _AppleDRINotify 1623464ebd5Sriastradh{ 1633464ebd5Sriastradh BYTE type; /* always eventBase + event type */ 1643464ebd5Sriastradh BYTE kind; 1653464ebd5Sriastradh CARD16 sequenceNumber B16; 1663464ebd5Sriastradh CARD32 time B32; /* time of change */ 1673464ebd5Sriastradh CARD32 pad1 B32; 1683464ebd5Sriastradh CARD32 arg B32; 1693464ebd5Sriastradh CARD32 pad3 B32; 1703464ebd5Sriastradh CARD32 pad4 B32; 1713464ebd5Sriastradh CARD32 pad5 B32; 1723464ebd5Sriastradh CARD32 pad6 B32; 1733464ebd5Sriastradh} xAppleDRINotifyEvent; 1743464ebd5Sriastradh#define sz_xAppleDRINotifyEvent 32 1753464ebd5Sriastradh 1763464ebd5Sriastradh 1773464ebd5Sriastradhtypedef struct 1783464ebd5Sriastradh{ 1793464ebd5Sriastradh CARD8 reqType; 1803464ebd5Sriastradh CARD8 driReqType; 1813464ebd5Sriastradh CARD16 length B16; 1823464ebd5Sriastradh CARD32 screen B32; 1833464ebd5Sriastradh CARD32 drawable B32; 1843464ebd5Sriastradh BOOL doubleSwap; 1853464ebd5Sriastradh CARD8 pad1, pad2, pad3; 1863464ebd5Sriastradh} xAppleDRICreateSharedBufferReq; 1873464ebd5Sriastradh 1883464ebd5Sriastradh#define sz_xAppleDRICreateSharedBufferReq 16 1893464ebd5Sriastradh 1903464ebd5Sriastradhtypedef struct 1913464ebd5Sriastradh{ 1923464ebd5Sriastradh BYTE type; 1933464ebd5Sriastradh BYTE data1; 1943464ebd5Sriastradh CARD16 sequenceNumber B16; 1953464ebd5Sriastradh CARD32 length B32; 1963464ebd5Sriastradh CARD32 stringLength B32; /* 0 on error */ 1973464ebd5Sriastradh CARD32 width B32; 1983464ebd5Sriastradh CARD32 height B32; 1993464ebd5Sriastradh CARD32 pad1 B32; 2003464ebd5Sriastradh CARD32 pad2 B32; 2013464ebd5Sriastradh CARD32 pad3 B32; 2023464ebd5Sriastradh} xAppleDRICreateSharedBufferReply; 2033464ebd5Sriastradh 2043464ebd5Sriastradh#define sz_xAppleDRICreateSharedBufferReply 32 2053464ebd5Sriastradh 2063464ebd5Sriastradhtypedef struct 2073464ebd5Sriastradh{ 2083464ebd5Sriastradh CARD8 reqType; 2093464ebd5Sriastradh CARD8 driReqType; 2103464ebd5Sriastradh CARD16 length B16; 2113464ebd5Sriastradh CARD32 screen B32; 2123464ebd5Sriastradh CARD32 drawable B32; 2133464ebd5Sriastradh} xAppleDRISwapBuffersReq; 2143464ebd5Sriastradh 2153464ebd5Sriastradh#define sz_xAppleDRISwapBuffersReq 12 2163464ebd5Sriastradh 2173464ebd5Sriastradhtypedef struct 2183464ebd5Sriastradh{ 2193464ebd5Sriastradh CARD8 reqType; /*1 */ 2203464ebd5Sriastradh CARD8 driReqType; /*2 */ 2213464ebd5Sriastradh CARD16 length B16; /*4 */ 2223464ebd5Sriastradh CARD32 screen B32; /*8 */ 2233464ebd5Sriastradh CARD32 drawable B32; /*12 */ 2243464ebd5Sriastradh} xAppleDRICreatePixmapReq; 2253464ebd5Sriastradh 2263464ebd5Sriastradh#define sz_xAppleDRICreatePixmapReq 12 2273464ebd5Sriastradh 2283464ebd5Sriastradhtypedef struct 2293464ebd5Sriastradh{ 2303464ebd5Sriastradh BYTE type; /*1 */ 2313464ebd5Sriastradh BOOL pad1; /*2 */ 2323464ebd5Sriastradh CARD16 sequenceNumber B16; /*4 */ 2333464ebd5Sriastradh CARD32 length B32; /*8 */ 2343464ebd5Sriastradh CARD32 width B32; /*12 */ 2353464ebd5Sriastradh CARD32 height B32; /*16 */ 2363464ebd5Sriastradh CARD32 pitch B32; /*20 */ 2373464ebd5Sriastradh CARD32 bpp B32; /*24 */ 2383464ebd5Sriastradh CARD32 size B32; /*28 */ 2393464ebd5Sriastradh CARD32 stringLength B32; /*32 */ 2403464ebd5Sriastradh} xAppleDRICreatePixmapReply; 2413464ebd5Sriastradh 2423464ebd5Sriastradh#define sz_xAppleDRICreatePixmapReply 32 2433464ebd5Sriastradh 2443464ebd5Sriastradhtypedef struct 2453464ebd5Sriastradh{ 2463464ebd5Sriastradh CARD8 reqType; /*1 */ 2473464ebd5Sriastradh CARD8 driReqType; /*2 */ 2483464ebd5Sriastradh CARD16 length B16; /*4 */ 2493464ebd5Sriastradh CARD32 drawable B32; /*8 */ 2503464ebd5Sriastradh} xAppleDRIDestroyPixmapReq; 2513464ebd5Sriastradh 2523464ebd5Sriastradh#define sz_xAppleDRIDestroyPixmapReq 8 2533464ebd5Sriastradh 2543464ebd5Sriastradh#ifdef _APPLEDRI_SERVER_ 2553464ebd5Sriastradh 2563464ebd5Sriastradhvoid AppleDRISendEvent( 2573464ebd5Sriastradh#if NeedFunctionPrototypes 2583464ebd5Sriastradh int /* type */ , 2593464ebd5Sriastradh unsigned int /* mask */ , 2603464ebd5Sriastradh int /* which */ , 2613464ebd5Sriastradh int /* arg */ 2623464ebd5Sriastradh#endif 2633464ebd5Sriastradh ); 2643464ebd5Sriastradh 2653464ebd5Sriastradh#endif /* _APPLEDRI_SERVER_ */ 2663464ebd5Sriastradh#endif /* _APPLEDRISTR_H_ */ 267