initial commit
[profile/ivi/xorg-x11-server.git] / Xext / shmint.h
1 /*
2  * Copyright © 2003 Keith Packard
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and its
5  * documentation for any purpose is hereby granted without fee, provided that
6  * the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of Keith Packard not be used in
9  * advertising or publicity pertaining to distribution of the software without
10  * specific, written prior permission.  Keith Packard makes no
11  * representations about the suitability of this software for any purpose.  It
12  * is provided "as is" without express or implied warranty.
13  *
14  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20  * PERFORMANCE OF THIS SOFTWARE.
21  */
22
23 #ifndef _SHMINT_H_
24 #define _SHMINT_H_
25
26 #include <X11/extensions/shmproto.h>
27
28 #include "screenint.h"
29 #include "pixmap.h"
30 #include "gc.h"
31
32 #define XSHM_PUT_IMAGE_ARGS \
33     DrawablePtr         /* dst */, \
34     GCPtr               /* pGC */, \
35     int                 /* depth */, \
36     unsigned int        /* format */, \
37     int                 /* w */, \
38     int                 /* h */, \
39     int                 /* sx */, \
40     int                 /* sy */, \
41     int                 /* sw */, \
42     int                 /* sh */, \
43     int                 /* dx */, \
44     int                 /* dy */, \
45     char *              /* data */
46
47 #define XSHM_CREATE_PIXMAP_ARGS \
48     ScreenPtr   /* pScreen */, \
49     int         /* width */, \
50     int         /* height */, \
51     int         /* depth */, \
52     char *      /* addr */
53
54 typedef struct _ShmFuncs {
55     PixmapPtr   (* CreatePixmap)(XSHM_CREATE_PIXMAP_ARGS);
56     void        (* PutImage)(XSHM_PUT_IMAGE_ARGS);
57 } ShmFuncs, *ShmFuncsPtr;
58
59 extern _X_EXPORT void
60 ShmRegisterFuncs(ScreenPtr pScreen, ShmFuncsPtr funcs);
61
62 extern _X_EXPORT void
63 ShmRegisterFbFuncs(ScreenPtr pScreen);
64
65 extern _X_EXPORT RESTYPE ShmSegType;
66 extern _X_EXPORT int ShmCompletionCode;
67 extern _X_EXPORT int BadShmSegCode;
68
69 #endif /* _SHMINT_H_ */