190b17f1bSmrg/* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.10 2002/10/30 12:51:25 alanh Exp $ */
290b17f1bSmrg/**************************************************************************
390b17f1bSmrg
490b17f1bSmrgCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
590b17f1bSmrgCopyright 2000 VA Linux Systems, Inc.
690b17f1bSmrgAll Rights Reserved.
790b17f1bSmrg
890b17f1bSmrgPermission is hereby granted, free of charge, to any person obtaining a
990b17f1bSmrgcopy of this software and associated documentation files (the
1090b17f1bSmrg"Software"), to deal in the Software without restriction, including
1190b17f1bSmrgwithout limitation the rights to use, copy, modify, merge, publish,
1290b17f1bSmrgdistribute, sub license, and/or sell copies of the Software, and to
1390b17f1bSmrgpermit persons to whom the Software is furnished to do so, subject to
1490b17f1bSmrgthe following conditions:
1590b17f1bSmrg
1690b17f1bSmrgThe above copyright notice and this permission notice (including the
1790b17f1bSmrgnext paragraph) shall be included in all copies or substantial portions
1890b17f1bSmrgof the Software.
1990b17f1bSmrg
2090b17f1bSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2190b17f1bSmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2290b17f1bSmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
2390b17f1bSmrgIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
2490b17f1bSmrgANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2590b17f1bSmrgTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2690b17f1bSmrgSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2790b17f1bSmrg
2890b17f1bSmrg**************************************************************************/
2990b17f1bSmrg
3090b17f1bSmrg/*
3190b17f1bSmrg * Authors:
3290b17f1bSmrg *   Kevin E. Martin <martin@valinux.com>
3390b17f1bSmrg *   Jens Owen <jens@tungstengraphics.com>
3490b17f1bSmrg *   Rickard E. (Rik) Fiath <faith@valinux.com>
3590b17f1bSmrg *
3690b17f1bSmrg */
3790b17f1bSmrg
3890b17f1bSmrg#ifndef _XF86DRISTR_H_
3990b17f1bSmrg#define _XF86DRISTR_H_
4090b17f1bSmrg
4190b17f1bSmrg#include "xf86dri.h"
4290b17f1bSmrg
4390b17f1bSmrg#define XF86DRINAME "XFree86-DRI"
4490b17f1bSmrg
4590b17f1bSmrg/* The DRI version number.  This was originally set to be the same of the
4690b17f1bSmrg * XFree86 version number.  However, this version is really indepedent of
4790b17f1bSmrg * the XFree86 version.
4890b17f1bSmrg *
4990b17f1bSmrg * Version History:
5090b17f1bSmrg *    4.0.0: Original
5190b17f1bSmrg *    4.0.1: Patch to bump clipstamp when windows are destroyed, 28 May 02
5290b17f1bSmrg *    4.1.0: Add transition from single to multi in DRMInfo rec, 24 Jun 02
5390b17f1bSmrg */
5490b17f1bSmrg#define XF86DRI_MAJOR_VERSION	4
5590b17f1bSmrg#define XF86DRI_MINOR_VERSION	1
5690b17f1bSmrg#define XF86DRI_PATCH_VERSION	0
5790b17f1bSmrg
5890b17f1bSmrgtypedef struct _XF86DRIQueryVersion
5990b17f1bSmrg{
6090b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
6190b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIQueryVersion */
6290b17f1bSmrg    CARD16 length B16;
6390b17f1bSmrg} xXF86DRIQueryVersionReq;
6490b17f1bSmrg
6590b17f1bSmrg#define sz_xXF86DRIQueryVersionReq	4
6690b17f1bSmrg
6790b17f1bSmrgtypedef struct
6890b17f1bSmrg{
6990b17f1bSmrg    BYTE type;			       /* X_Reply */
7090b17f1bSmrg    BOOL pad1;
7190b17f1bSmrg    CARD16 sequenceNumber B16;
7290b17f1bSmrg    CARD32 length B32;
7390b17f1bSmrg    CARD16 majorVersion B16;	       /* major version of DRI protocol */
7490b17f1bSmrg    CARD16 minorVersion B16;	       /* minor version of DRI protocol */
7590b17f1bSmrg    CARD32 patchVersion B32;	       /* patch version of DRI protocol */
7690b17f1bSmrg    CARD32 pad3 B32;
7790b17f1bSmrg    CARD32 pad4 B32;
7890b17f1bSmrg    CARD32 pad5 B32;
7990b17f1bSmrg    CARD32 pad6 B32;
8090b17f1bSmrg} xXF86DRIQueryVersionReply;
8190b17f1bSmrg
8290b17f1bSmrg#define sz_xXF86DRIQueryVersionReply	32
8390b17f1bSmrg
8490b17f1bSmrgtypedef struct _XF86DRIQueryDirectRenderingCapable
8590b17f1bSmrg{
8690b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
8790b17f1bSmrg    CARD8 driReqType;		       /* X_DRIQueryDirectRenderingCapable */
8890b17f1bSmrg    CARD16 length B16;
8990b17f1bSmrg    CARD32 screen B32;
9090b17f1bSmrg} xXF86DRIQueryDirectRenderingCapableReq;
9190b17f1bSmrg
9290b17f1bSmrg#define sz_xXF86DRIQueryDirectRenderingCapableReq	8
9390b17f1bSmrg
9490b17f1bSmrgtypedef struct
9590b17f1bSmrg{
9690b17f1bSmrg    BYTE type;			       /* X_Reply */
9790b17f1bSmrg    BOOL pad1;
9890b17f1bSmrg    CARD16 sequenceNumber B16;
9990b17f1bSmrg    CARD32 length B32;
10090b17f1bSmrg    BOOL isCapable;
10190b17f1bSmrg    BOOL pad2;
10290b17f1bSmrg    BOOL pad3;
10390b17f1bSmrg    BOOL pad4;
10490b17f1bSmrg    CARD32 pad5 B32;
10590b17f1bSmrg    CARD32 pad6 B32;
10690b17f1bSmrg    CARD32 pad7 B32;
10790b17f1bSmrg    CARD32 pad8 B32;
10890b17f1bSmrg    CARD32 pad9 B32;
10990b17f1bSmrg} xXF86DRIQueryDirectRenderingCapableReply;
11090b17f1bSmrg
11190b17f1bSmrg#define sz_xXF86DRIQueryDirectRenderingCapableReply	32
11290b17f1bSmrg
11390b17f1bSmrgtypedef struct _XF86DRIOpenConnection
11490b17f1bSmrg{
11590b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
11690b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIOpenConnection */
11790b17f1bSmrg    CARD16 length B16;
11890b17f1bSmrg    CARD32 screen B32;
11990b17f1bSmrg} xXF86DRIOpenConnectionReq;
12090b17f1bSmrg
12190b17f1bSmrg#define sz_xXF86DRIOpenConnectionReq	8
12290b17f1bSmrg
12390b17f1bSmrgtypedef struct
12490b17f1bSmrg{
12590b17f1bSmrg    BYTE type;			       /* X_Reply */
12690b17f1bSmrg    BOOL pad1;
12790b17f1bSmrg    CARD16 sequenceNumber B16;
12890b17f1bSmrg    CARD32 length B32;
12990b17f1bSmrg    CARD32 hSAREALow B32;
13090b17f1bSmrg    CARD32 hSAREAHigh B32;
13190b17f1bSmrg    CARD32 busIdStringLength B32;
13290b17f1bSmrg    CARD32 pad6 B32;
13390b17f1bSmrg    CARD32 pad7 B32;
13490b17f1bSmrg    CARD32 pad8 B32;
13590b17f1bSmrg} xXF86DRIOpenConnectionReply;
13690b17f1bSmrg
13790b17f1bSmrg#define sz_xXF86DRIOpenConnectionReply	32
13890b17f1bSmrg
13990b17f1bSmrgtypedef struct _XF86DRIAuthConnection
14090b17f1bSmrg{
14190b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
14290b17f1bSmrg    CARD8 driReqType;		       /* always X_DRICloseConnection */
14390b17f1bSmrg    CARD16 length B16;
14490b17f1bSmrg    CARD32 screen B32;
14590b17f1bSmrg    CARD32 magic B32;
14690b17f1bSmrg} xXF86DRIAuthConnectionReq;
14790b17f1bSmrg
14890b17f1bSmrg#define sz_xXF86DRIAuthConnectionReq	12
14990b17f1bSmrg
15090b17f1bSmrgtypedef struct
15190b17f1bSmrg{
15290b17f1bSmrg    BYTE type;
15390b17f1bSmrg    BOOL pad1;
15490b17f1bSmrg    CARD16 sequenceNumber B16;
15590b17f1bSmrg    CARD32 length B32;
15690b17f1bSmrg    CARD32 authenticated B32;
15790b17f1bSmrg    CARD32 pad2 B32;
15890b17f1bSmrg    CARD32 pad3 B32;
15990b17f1bSmrg    CARD32 pad4 B32;
16090b17f1bSmrg    CARD32 pad5 B32;
16190b17f1bSmrg    CARD32 pad6 B32;
16290b17f1bSmrg} xXF86DRIAuthConnectionReply;
16390b17f1bSmrg
16490b17f1bSmrg#define zx_xXF86DRIAuthConnectionReply  32
16590b17f1bSmrg
16690b17f1bSmrgtypedef struct _XF86DRICloseConnection
16790b17f1bSmrg{
16890b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
16990b17f1bSmrg    CARD8 driReqType;		       /* always X_DRICloseConnection */
17090b17f1bSmrg    CARD16 length B16;
17190b17f1bSmrg    CARD32 screen B32;
17290b17f1bSmrg} xXF86DRICloseConnectionReq;
17390b17f1bSmrg
17490b17f1bSmrg#define sz_xXF86DRICloseConnectionReq	8
17590b17f1bSmrg
17690b17f1bSmrgtypedef struct _XF86DRIGetClientDriverName
17790b17f1bSmrg{
17890b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
17990b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIGetClientDriverName */
18090b17f1bSmrg    CARD16 length B16;
18190b17f1bSmrg    CARD32 screen B32;
18290b17f1bSmrg} xXF86DRIGetClientDriverNameReq;
18390b17f1bSmrg
18490b17f1bSmrg#define sz_xXF86DRIGetClientDriverNameReq	8
18590b17f1bSmrg
18690b17f1bSmrgtypedef struct
18790b17f1bSmrg{
18890b17f1bSmrg    BYTE type;			       /* X_Reply */
18990b17f1bSmrg    BOOL pad1;
19090b17f1bSmrg    CARD16 sequenceNumber B16;
19190b17f1bSmrg    CARD32 length B32;
19290b17f1bSmrg    CARD32 ddxDriverMajorVersion B32;
19390b17f1bSmrg    CARD32 ddxDriverMinorVersion B32;
19490b17f1bSmrg    CARD32 ddxDriverPatchVersion B32;
19590b17f1bSmrg    CARD32 clientDriverNameLength B32;
19690b17f1bSmrg    CARD32 pad5 B32;
19790b17f1bSmrg    CARD32 pad6 B32;
19890b17f1bSmrg} xXF86DRIGetClientDriverNameReply;
19990b17f1bSmrg
20090b17f1bSmrg#define sz_xXF86DRIGetClientDriverNameReply	32
20190b17f1bSmrg
20290b17f1bSmrgtypedef struct _XF86DRICreateContext
20390b17f1bSmrg{
20490b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
20590b17f1bSmrg    CARD8 driReqType;		       /* always X_DRICreateContext */
20690b17f1bSmrg    CARD16 length B16;
20790b17f1bSmrg    CARD32 screen B32;
20890b17f1bSmrg    CARD32 visual B32;
20990b17f1bSmrg    CARD32 context B32;
21090b17f1bSmrg} xXF86DRICreateContextReq;
21190b17f1bSmrg
21290b17f1bSmrg#define sz_xXF86DRICreateContextReq	16
21390b17f1bSmrg
21490b17f1bSmrgtypedef struct
21590b17f1bSmrg{
21690b17f1bSmrg    BYTE type;			       /* X_Reply */
21790b17f1bSmrg    BOOL pad1;
21890b17f1bSmrg    CARD16 sequenceNumber B16;
21990b17f1bSmrg    CARD32 length B32;
22090b17f1bSmrg    CARD32 hHWContext B32;
22190b17f1bSmrg    CARD32 pad2 B32;
22290b17f1bSmrg    CARD32 pad3 B32;
22390b17f1bSmrg    CARD32 pad4 B32;
22490b17f1bSmrg    CARD32 pad5 B32;
22590b17f1bSmrg    CARD32 pad6 B32;
22690b17f1bSmrg} xXF86DRICreateContextReply;
22790b17f1bSmrg
22890b17f1bSmrg#define sz_xXF86DRICreateContextReply	32
22990b17f1bSmrg
23090b17f1bSmrgtypedef struct _XF86DRIDestroyContext
23190b17f1bSmrg{
23290b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
23390b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIDestroyContext */
23490b17f1bSmrg    CARD16 length B16;
23590b17f1bSmrg    CARD32 screen B32;
23690b17f1bSmrg    CARD32 context B32;
23790b17f1bSmrg} xXF86DRIDestroyContextReq;
23890b17f1bSmrg
23990b17f1bSmrg#define sz_xXF86DRIDestroyContextReq	12
24090b17f1bSmrg
24190b17f1bSmrgtypedef struct _XF86DRICreateDrawable
24290b17f1bSmrg{
24390b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
24490b17f1bSmrg    CARD8 driReqType;		       /* always X_DRICreateDrawable */
24590b17f1bSmrg    CARD16 length B16;
24690b17f1bSmrg    CARD32 screen B32;
24790b17f1bSmrg    CARD32 drawable B32;
24890b17f1bSmrg} xXF86DRICreateDrawableReq;
24990b17f1bSmrg
25090b17f1bSmrg#define sz_xXF86DRICreateDrawableReq	12
25190b17f1bSmrg
25290b17f1bSmrgtypedef struct
25390b17f1bSmrg{
25490b17f1bSmrg    BYTE type;			       /* X_Reply */
25590b17f1bSmrg    BOOL pad1;
25690b17f1bSmrg    CARD16 sequenceNumber B16;
25790b17f1bSmrg    CARD32 length B32;
25890b17f1bSmrg    CARD32 hHWDrawable B32;
25990b17f1bSmrg    CARD32 pad2 B32;
26090b17f1bSmrg    CARD32 pad3 B32;
26190b17f1bSmrg    CARD32 pad4 B32;
26290b17f1bSmrg    CARD32 pad5 B32;
26390b17f1bSmrg    CARD32 pad6 B32;
26490b17f1bSmrg} xXF86DRICreateDrawableReply;
26590b17f1bSmrg
26690b17f1bSmrg#define sz_xXF86DRICreateDrawableReply	32
26790b17f1bSmrg
26890b17f1bSmrgtypedef struct _XF86DRIDestroyDrawable
26990b17f1bSmrg{
27090b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
27190b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIDestroyDrawable */
27290b17f1bSmrg    CARD16 length B16;
27390b17f1bSmrg    CARD32 screen B32;
27490b17f1bSmrg    CARD32 drawable B32;
27590b17f1bSmrg} xXF86DRIDestroyDrawableReq;
27690b17f1bSmrg
27790b17f1bSmrg#define sz_xXF86DRIDestroyDrawableReq	12
27890b17f1bSmrg
27990b17f1bSmrgtypedef struct _XF86DRIGetDrawableInfo
28090b17f1bSmrg{
28190b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
28290b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIGetDrawableInfo */
28390b17f1bSmrg    CARD16 length B16;
28490b17f1bSmrg    CARD32 screen B32;
28590b17f1bSmrg    CARD32 drawable B32;
28690b17f1bSmrg} xXF86DRIGetDrawableInfoReq;
28790b17f1bSmrg
28890b17f1bSmrg#define sz_xXF86DRIGetDrawableInfoReq	12
28990b17f1bSmrg
29090b17f1bSmrgtypedef struct
29190b17f1bSmrg{
29290b17f1bSmrg    BYTE type;			       /* X_Reply */
29390b17f1bSmrg    BOOL pad1;
29490b17f1bSmrg    CARD16 sequenceNumber B16;
29590b17f1bSmrg    CARD32 length B32;
29690b17f1bSmrg    CARD32 drawableTableIndex B32;
29790b17f1bSmrg    CARD32 drawableTableStamp B32;
29890b17f1bSmrg    INT16 drawableX B16;
29990b17f1bSmrg    INT16 drawableY B16;
30090b17f1bSmrg    INT16 drawableWidth B16;
30190b17f1bSmrg    INT16 drawableHeight B16;
30290b17f1bSmrg    CARD32 numClipRects B32;
30390b17f1bSmrg    INT16 backX B16;
30490b17f1bSmrg    INT16 backY B16;
30590b17f1bSmrg    CARD32 numBackClipRects B32;
30690b17f1bSmrg} xXF86DRIGetDrawableInfoReply;
30790b17f1bSmrg
30890b17f1bSmrg#define sz_xXF86DRIGetDrawableInfoReply	36
30990b17f1bSmrg
31090b17f1bSmrgtypedef struct _XF86DRIGetDeviceInfo
31190b17f1bSmrg{
31290b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
31390b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIGetDeviceInfo */
31490b17f1bSmrg    CARD16 length B16;
31590b17f1bSmrg    CARD32 screen B32;
31690b17f1bSmrg} xXF86DRIGetDeviceInfoReq;
31790b17f1bSmrg
31890b17f1bSmrg#define sz_xXF86DRIGetDeviceInfoReq	8
31990b17f1bSmrg
32090b17f1bSmrgtypedef struct
32190b17f1bSmrg{
32290b17f1bSmrg    BYTE type;			       /* X_Reply */
32390b17f1bSmrg    BOOL pad1;
32490b17f1bSmrg    CARD16 sequenceNumber B16;
32590b17f1bSmrg    CARD32 length B32;
32690b17f1bSmrg    CARD32 hFrameBufferLow B32;
32790b17f1bSmrg    CARD32 hFrameBufferHigh B32;
32890b17f1bSmrg    CARD32 framebufferOrigin B32;
32990b17f1bSmrg    CARD32 framebufferSize B32;
33090b17f1bSmrg    CARD32 framebufferStride B32;
33190b17f1bSmrg    CARD32 devPrivateSize B32;
33290b17f1bSmrg} xXF86DRIGetDeviceInfoReply;
33390b17f1bSmrg
33490b17f1bSmrg#define sz_xXF86DRIGetDeviceInfoReply	32
33590b17f1bSmrg
33690b17f1bSmrgtypedef struct _XF86DRIOpenFullScreen
33790b17f1bSmrg{
33890b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
33990b17f1bSmrg    CARD8 driReqType;		       /* always X_DRIOpenFullScreen */
34090b17f1bSmrg    CARD16 length B16;
34190b17f1bSmrg    CARD32 screen B32;
34290b17f1bSmrg    CARD32 drawable B32;
34390b17f1bSmrg} xXF86DRIOpenFullScreenReq;
34490b17f1bSmrg
34590b17f1bSmrg#define sz_xXF86DRIOpenFullScreenReq    12
34690b17f1bSmrg
34790b17f1bSmrgtypedef struct
34890b17f1bSmrg{
34990b17f1bSmrg    BYTE type;
35090b17f1bSmrg    BOOL pad1;
35190b17f1bSmrg    CARD16 sequenceNumber B16;
35290b17f1bSmrg    CARD32 length B32;
35390b17f1bSmrg    CARD32 isFullScreen B32;
35490b17f1bSmrg    CARD32 pad2 B32;
35590b17f1bSmrg    CARD32 pad3 B32;
35690b17f1bSmrg    CARD32 pad4 B32;
35790b17f1bSmrg    CARD32 pad5 B32;
35890b17f1bSmrg    CARD32 pad6 B32;
35990b17f1bSmrg} xXF86DRIOpenFullScreenReply;
36090b17f1bSmrg
36190b17f1bSmrg#define sz_xXF86DRIOpenFullScreenReply  32
36290b17f1bSmrg
36390b17f1bSmrgtypedef struct _XF86DRICloseFullScreen
36490b17f1bSmrg{
36590b17f1bSmrg    CARD8 reqType;		       /* always DRIReqCode */
36690b17f1bSmrg    CARD8 driReqType;		       /* always X_DRICloseFullScreen */
36790b17f1bSmrg    CARD16 length B16;
36890b17f1bSmrg    CARD32 screen B32;
36990b17f1bSmrg    CARD32 drawable B32;
37090b17f1bSmrg} xXF86DRICloseFullScreenReq;
37190b17f1bSmrg
37290b17f1bSmrg#define sz_xXF86DRICloseFullScreenReq   12
37390b17f1bSmrg
37490b17f1bSmrgtypedef struct
37590b17f1bSmrg{
37690b17f1bSmrg    BYTE type;
37790b17f1bSmrg    BOOL pad1;
37890b17f1bSmrg    CARD16 sequenceNumber B16;
37990b17f1bSmrg    CARD32 length B32;
38090b17f1bSmrg    CARD32 pad2 B32;
38190b17f1bSmrg    CARD32 pad3 B32;
38290b17f1bSmrg    CARD32 pad4 B32;
38390b17f1bSmrg    CARD32 pad5 B32;
38490b17f1bSmrg    CARD32 pad6 B32;
38590b17f1bSmrg    CARD32 pad7 B32;
38690b17f1bSmrg} xXF86DRICloseFullScreenReply;
38790b17f1bSmrg
38890b17f1bSmrg#define sz_xXF86DRICloseFullScreenReply  32
38990b17f1bSmrg
39090b17f1bSmrg#endif /* _XF86DRISTR_H_ */
391