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