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