1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.7 2000/12/07 20:26:02 dawes Exp $ */
2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/**************************************************************************
3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCopyright 2000 VA Linux Systems, Inc.
6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCopyright (c) 2002, 2008, 2009 Apple Computer, Inc.
7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectAll Rights Reserved.
8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectPermission is hereby granted, free of charge, to any person obtaining a
10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectcopy of this software and associated documentation files (the
11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project"Software"), to deal in the Software without restriction, including
12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectwithout limitation the rights to use, copy, modify, merge, publish,
13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectdistribute, sub license, and/or sell copies of the Software, and to
14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectpermit persons to whom the Software is furnished to do so, subject to
15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectthe following conditions:
16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectThe above copyright notice and this permission notice (including the
18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectnext paragraph) shall be included in all copies or substantial portions
19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectof the Software.
20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project**************************************************************************/
30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/*
32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Authors:
33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *   Kevin E. Martin <martin@valinux.com>
34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *   Jens Owen <jens@valinux.com>
35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *   Rickard E. (Rik) Faith <faith@valinux.com>
36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project *
37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */
38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef _APPLEDRI_H_
40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define _APPLEDRI_H_
41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <X11/Xlib.h>
43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <X11/Xfuncproto.h>
44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRIQueryVersion			0
46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRIQueryDirectRenderingCapable	1
47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRICreateSurface			2
48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRIDestroySurface		3
49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRIAuthConnection                4
50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRICreateSharedBuffer            5
51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRISwapBuffers                   6
52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRICreatePixmap                  7
53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define X_AppleDRIDestroyPixmap                 8
54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Requests up to and including 18 were used in a previous version */
56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Events */
58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRIObsoleteEvent1		0
59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRIObsoleteEvent2		1
60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRIObsoleteEvent3		2
61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRISurfaceNotify		3
62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRINumberEvents		4
63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Errors */
65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRIClientNotLocal		0
66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRIOperationNotSupported	1
67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRINumberErrors		(AppleDRIOperationNotSupported + 1)
68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Kinds of SurfaceNotify events: */
70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRISurfaceNotifyChanged	0
71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define AppleDRISurfaceNotifyDestroyed	1
72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef _APPLEDRI_SERVER_
74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct
76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project{
77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   int type;                    /* of event */
78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   unsigned long serial;        /* # of last request processed by server */
79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   Bool send_event;             /* true if this came frome a SendEvent request */
80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   Display *display;            /* Display the event was read from */
81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   Window window;               /* window of event */
82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   Time time;                   /* server timestamp when event happened */
83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   int kind;                    /* subtype of event */
84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   int arg;
85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project} XAppleDRINotifyEvent;
86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project_XFUNCPROTOBEGIN
88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project   Bool XAppleDRIQueryExtension(Display * dpy, int *event_base,
89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                int *error_base);
90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRIQueryVersion(Display * dpy, int *majorVersion,
92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                           int *minorVersion, int *patchVersion);
93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRIQueryDirectRenderingCapable(Display * dpy, int screen,
95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                          Bool * isCapable);
96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid *XAppleDRISetSurfaceNotifyHandler(void (*fun) (Display * dpy,
98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                                    unsigned uid, int kind));
99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRIAuthConnection(Display * dpy, int screen, unsigned int magic);
101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRICreateSurface(Display * dpy, int screen, Drawable drawable,
103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                            unsigned int client_id, unsigned int key[2],
104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                            unsigned int *uid);
105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRIDestroySurface(Display * dpy, int screen, Drawable drawable);
107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRISynchronizeSurfaces(Display * dpy);
109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRICreateSharedBuffer(Display * dpy, int screen, Drawable drawable,
111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                 Bool doubleSwap, char *path, size_t pathlen,
112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                                 int *width, int *height);
113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRISwapBuffers(Display * dpy, int screen, Drawable drawable);
115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRICreatePixmap(Display * dpy, int screen, Drawable drawable,
117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                           int *width, int *height, int *pitch, int *bpp,
118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project                           size_t * size, char *bufname, size_t bufnamesize);
119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBool XAppleDRIDestroyPixmap(Display * dpy, Pixmap pixmap);
121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project
122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project_XFUNCPROTOEND
123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* _APPLEDRI_SERVER_ */
124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif /* _APPLEDRI_H_ */
125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project