1*4882a593Smuzhiyun /* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */ 2*4882a593Smuzhiyun /************************************************************************** 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. 5*4882a593Smuzhiyun Copyright 2000 VA Linux Systems, Inc. 6*4882a593Smuzhiyun Copyright (c) 2002-2012 Apple Computer, Inc. 7*4882a593Smuzhiyun All Rights Reserved. 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun Permission is hereby granted, free of charge, to any person obtaining a 10*4882a593Smuzhiyun copy of this software and associated documentation files (the 11*4882a593Smuzhiyun "Software"), to deal in the Software without restriction, including 12*4882a593Smuzhiyun without limitation the rights to use, copy, modify, merge, publish, 13*4882a593Smuzhiyun distribute, sub license, and/or sell copies of the Software, and to 14*4882a593Smuzhiyun permit persons to whom the Software is furnished to do so, subject to 15*4882a593Smuzhiyun the following conditions: 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun The above copyright notice and this permission notice (including the 18*4882a593Smuzhiyun next paragraph) shall be included in all copies or substantial portions 19*4882a593Smuzhiyun of the Software. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 22*4882a593Smuzhiyun OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23*4882a593Smuzhiyun MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 24*4882a593Smuzhiyun IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 25*4882a593Smuzhiyun ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 26*4882a593Smuzhiyun TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 27*4882a593Smuzhiyun SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun **************************************************************************/ 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* 32*4882a593Smuzhiyun * Authors: 33*4882a593Smuzhiyun * Kevin E. Martin <martin@valinux.com> 34*4882a593Smuzhiyun * Jens Owen <jens@valinux.com> 35*4882a593Smuzhiyun * Rickard E. (Rik) Faith <faith@valinux.com> 36*4882a593Smuzhiyun * Jeremy Huddleston <jeremyhu@apple.com> 37*4882a593Smuzhiyun * 38*4882a593Smuzhiyun */ 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #ifndef _APPLEDRI_H_ 41*4882a593Smuzhiyun #define _APPLEDRI_H_ 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #include <X11/Xfuncproto.h> 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define X_AppleDRIQueryVersion 0 46*4882a593Smuzhiyun #define X_AppleDRIQueryDirectRenderingCapable 1 47*4882a593Smuzhiyun #define X_AppleDRICreateSurface 2 48*4882a593Smuzhiyun #define X_AppleDRIDestroySurface 3 49*4882a593Smuzhiyun #define X_AppleDRIAuthConnection 4 50*4882a593Smuzhiyun #define X_AppleDRICreateSharedBuffer 5 51*4882a593Smuzhiyun #define X_AppleDRISwapBuffers 6 52*4882a593Smuzhiyun #define X_AppleDRICreatePixmap 7 53*4882a593Smuzhiyun #define X_AppleDRIDestroyPixmap 8 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun /* Requests up to and including 18 were used in a previous version */ 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun /* Events */ 58*4882a593Smuzhiyun #define AppleDRIObsoleteEvent1 0 59*4882a593Smuzhiyun #define AppleDRIObsoleteEvent2 1 60*4882a593Smuzhiyun #define AppleDRIObsoleteEvent3 2 61*4882a593Smuzhiyun #define AppleDRISurfaceNotify 3 62*4882a593Smuzhiyun #define AppleDRINumberEvents 4 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun /* Errors */ 65*4882a593Smuzhiyun #define AppleDRIClientNotLocal 0 66*4882a593Smuzhiyun #define AppleDRIOperationNotSupported 1 67*4882a593Smuzhiyun #define AppleDRINumberErrors (AppleDRIOperationNotSupported + 1) 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun /* Kinds of SurfaceNotify events: */ 70*4882a593Smuzhiyun #define AppleDRISurfaceNotifyChanged 0 71*4882a593Smuzhiyun #define AppleDRISurfaceNotifyDestroyed 1 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun #ifndef _APPLEDRI_SERVER_ 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun typedef struct { 76*4882a593Smuzhiyun int type; /* of event */ 77*4882a593Smuzhiyun unsigned long serial; /* # of last request processed by server */ 78*4882a593Smuzhiyun Bool send_event; /* true if this came frome a SendEvent request */ 79*4882a593Smuzhiyun Display *display; /* Display the event was read from */ 80*4882a593Smuzhiyun Window window; /* window of event */ 81*4882a593Smuzhiyun Time time; /* server timestamp when event happened */ 82*4882a593Smuzhiyun int kind; /* subtype of event */ 83*4882a593Smuzhiyun int arg; 84*4882a593Smuzhiyun } XAppleDRINotifyEvent; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun _XFUNCPROTOBEGIN 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun Bool 89*4882a593Smuzhiyun XAppleDRIQueryExtension(Display *dpy, int *event_base, int *error_base); 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun Bool 92*4882a593Smuzhiyun XAppleDRIQueryVersion(Display *dpy, int *majorVersion, int *minorVersion, 93*4882a593Smuzhiyun int *patchVersion); 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun Bool 96*4882a593Smuzhiyun XAppleDRIQueryDirectRenderingCapable(Display *dpy, int screen, 97*4882a593Smuzhiyun Bool *isCapable); 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun void * 100*4882a593Smuzhiyun XAppleDRISetSurfaceNotifyHandler(void (*fun)(Display *dpy, unsigned uid, 101*4882a593Smuzhiyun int kind)); 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun Bool 104*4882a593Smuzhiyun XAppleDRIAuthConnection(Display *dpy, int screen, unsigned int magic); 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun Bool XAppleDRICreateSurface(Display * dpy, int screen, Drawable drawable, 107*4882a593Smuzhiyun unsigned int client_id, unsigned int key[2], 108*4882a593Smuzhiyun unsigned int* uid); 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun Bool 111*4882a593Smuzhiyun XAppleDRIDestroySurface(Display *dpy, int screen, Drawable drawable); 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun Bool 114*4882a593Smuzhiyun XAppleDRISynchronizeSurfaces(Display *dpy); 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun Bool 117*4882a593Smuzhiyun XAppleDRICreateSharedBuffer(Display *dpy, int screen, Drawable drawable, 118*4882a593Smuzhiyun Bool doubleSwap, char *path, size_t pathlen, 119*4882a593Smuzhiyun int *width, 120*4882a593Smuzhiyun int *height); 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun Bool 123*4882a593Smuzhiyun XAppleDRISwapBuffers(Display *dpy, int screen, Drawable drawable); 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun Bool 126*4882a593Smuzhiyun XAppleDRICreatePixmap(Display *dpy, int screen, Drawable drawable, int *width, 127*4882a593Smuzhiyun int *height, int *pitch, int *bpp, size_t *size, 128*4882a593Smuzhiyun char *bufname, 129*4882a593Smuzhiyun size_t bufnamesize); 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun Bool 132*4882a593Smuzhiyun XAppleDRIDestroyPixmap(Display *dpy, Pixmap pixmap); 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun _XFUNCPROTOEND 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun #endif /* _APPLEDRI_SERVER_ */ 137*4882a593Smuzhiyun #endif /* _APPLEDRI_H_ */ 138