1 /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules.
2 * xscreensaver, Copyright (c) 1997-2002 Jamie Zawinski <jwz@jwz.org>
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. No representations are made about the suitability of this
9 * software for any purpose. It is provided "as is" without express or
12 * See xlockmore.h and xlockmore.c.
15 #ifndef __XLOCKMORE_INTERNAL_H__
16 #define __XLOCKMORE_INTERNAL_H__
18 #include "screenhack.h"
20 #ifdef HAVE_XSHM_EXTENSION
22 #endif /* HAVE_XSHM_EXTENSION */
25 /* I'm told that the Sun version of OpenGL needs to have the constant
26 SUN_OGL_NO_VERTEX_MACROS defined in order for morph3d to compile
27 (the number of arguments to the glNormal3f macro changes...)
28 Verified with gcc 2.7.2.2 and Sun cc 4.2 with OpenGL 1.1.1 dev 4
32 # if defined(__sun) && defined(__SVR4) /* Solaris */
33 # define SUN_OGL_NO_VERTEX_MACROS 1
35 #endif /* !HAVE_MESA_GL */
38 /* Compatibility with the xlockmore RNG API
39 (note that the xlockmore hacks never expect negative numbers.)
41 #define LRAND() ((long) (random() & 0x7fffffff))
42 #define NRAND(n) ((int) (LRAND() % (n)))
43 #define MAXRAND (2147483648.0) /* unsigned 1<<31 as a float */
44 #define SRAND(n) /* already seeded by screenhack.c */
47 typedef struct ModeInfo {
52 unsigned long *pixels;
57 XWindowAttributes xgwa;
65 long threed_left_color;
66 long threed_right_color;
67 long threed_both_color;
68 long threed_none_color;
74 unsigned long polygon_count; /* used only by FPS display */
76 #ifdef HAVE_XSHM_EXTENSION
78 XShmSegmentInfo shm_info;
83 typedef enum { t_String, t_Float, t_Int, t_Bool } xlockmore_type;
100 XrmOptionDescRec *opts;
106 extern void xlockmore_screenhack (Display *dpy, Window window,
107 Bool want_writable_colors,
108 Bool want_uniform_colors,
109 Bool want_smooth_colors,
110 Bool want_bright_colors,
111 unsigned long event_mask,
112 void (*hack_init) (ModeInfo *),
113 void (*hack_draw) (ModeInfo *),
114 void (*hack_reshape) (ModeInfo *, int, int),
115 Bool (*hack_handle_events) (ModeInfo *,
117 void (*hack_free) (ModeInfo *));
119 #endif /* __XLOCKMORE_INTERNAL_H__ */