346107740909e7ec7782950b9f6a401bdbab7091
[mesa.git] / src / glut / glx / layerutil.h
1 #ifndef __layerutil_h__
2 #define __layerutil_h__
3
4 /* Copyright (c) Mark J. Kilgard, 1993, 1994. */
5
6 /* This program is freely distributable without licensing fees
7 and is provided without guarantee or warrantee expressed or
8 implied. This program is -not- in the public domain. */
9
10 /* Based on XLayerUtil.h: Revision: 1.3 */
11
12 #if !defined(_WIN32)
13 #include <X11/Xlib.h>
14 #include <X11/Xutil.h>
15 #include <X11/Xmd.h>
16 #endif /* !_WIN32 */
17
18 /* Transparent type values */
19 /* None 0 */
20 #define TransparentPixel 1
21 #define TransparentMask 2
22
23 /* layered visual info template flags */
24 #define VisualLayerMask 0x200
25 #define VisualTransparentType 0x400
26 #define VisualTransparentValue 0x800
27 #define VisualAllLayerMask 0xFFF
28
29 /* layered visual info structure */
30 typedef struct _XLayerVisualInfo {
31 XVisualInfo vinfo;
32 long layer;
33 long type;
34 unsigned long value;
35 } XLayerVisualInfo;
36
37 /* SERVER_OVERLAY_VISUALS property element */
38 typedef struct _OverlayInfo {
39 /* Avoid 64-bit portability problems by being careful to use
40 longs due to the way XGetWindowProperty is specified. Note
41 that these parameters are passed as CARD32s over X
42 protocol. */
43 long overlay_visual;
44 long transparent_type;
45 long value;
46 long layer;
47 } OverlayInfo;
48
49 extern int __glutGetTransparentPixel(Display *, XVisualInfo *);
50 extern XLayerVisualInfo *__glutXGetLayerVisualInfo(Display *,
51 long, XLayerVisualInfo *, int *);
52 extern Status __glutXMatchLayerVisualInfo(Display *,
53 int, int, int, int, XLayerVisualInfo *);
54
55 #endif /* __layerutil_h__ */