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#ifdef __VMS
13#include <GL/vms_x_fix.h>
14#endif
15
16#if !defined(_WIN32)
17#include <X11/Xlib.h>
18#include <X11/Xutil.h>
19#include <X11/Xmd.h>
20#endif /* !_WIN32 */
21
22/* Transparent type values */
23/* None                       0 */
24#define TransparentPixel      1
25#define TransparentMask       2
26
27/* layered visual info template flags */
28#define VisualLayerMask		0x200
29#define VisualTransparentType	0x400
30#define VisualTransparentValue	0x800
31#define VisualAllLayerMask	0xFFF
32
33/* layered visual info structure */
34typedef struct _XLayerVisualInfo {
35  XVisualInfo vinfo;
36  long layer;
37  long type;
38  unsigned long value;
39} XLayerVisualInfo;
40
41/* SERVER_OVERLAY_VISUALS property element */
42typedef struct _OverlayInfo {
43  /* Avoid 64-bit portability problems by being careful to use
44     longs due to the way XGetWindowProperty is specified. Note
45     that these parameters are passed as CARD32s over X
46     protocol. */
47  long overlay_visual;
48  long transparent_type;
49  long value;
50  long layer;
51} OverlayInfo;
52
53extern int __glutGetTransparentPixel(Display *, XVisualInfo *);
54extern XLayerVisualInfo *__glutXGetLayerVisualInfo(Display *,
55  long, XLayerVisualInfo *, int *);
56extern Status __glutXMatchLayerVisualInfo(Display *,
57  int, int, int, int, XLayerVisualInfo *);
58
59#endif /* __layerutil_h__ */
60