http://www.uw-madison.lkams.kernel.org/pub/mirrors/fink/distfiles/xscreensaver-4...
[xscreensaver] / hacks / xlockmore.h
index d39119abd38e40968a13ed1d85d8ce8161e3ea0d..84e63f698ec881387bf39148d9103e3032a3ac8d 100644 (file)
@@ -1,5 +1,5 @@
 /* xlockmore.h --- xscreensaver compatibility layer for xlockmore modules.
- * xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1997-2003 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -35,8 +35,15 @@ ERROR!  Sorry, xlockmore.h requires ANSI C (gcc, for example.)
 #ifdef USE_GL
 # include <GL/glx.h>
   extern GLXContext *init_GL (ModeInfo *);
+  extern void clear_gl_error (void);
+  extern void check_gl_error (const char *type);
+
+  extern void do_fps (ModeInfo *);
+  extern GLfloat fps_1 (ModeInfo *);
+  extern void    fps_2 (ModeInfo *);
+
 # define FreeAllGL(dpy) /* */
-#endif
+#endif /* !USE_GL */
 
 /* Accessor macros for the ModeInfo structure
  */
@@ -74,10 +81,11 @@ ERROR!  Sorry, xlockmore.h requires ANSI C (gcc, for example.)
 #define MI_BATCHCOUNT(MI)      ((MI)->batchcount)
 #define MI_SIZE(MI)            ((MI)->size)
 #define MI_IS_DRAWN(MI)                ((MI)->is_drawn)
-#define MI_IS_DRAWN(MI)                ((MI)->is_drawn)
+#define MI_IS_FPS(MI)          ((MI)->fps_p)
 #define MI_NCOLORS(MI)         ((MI)->npixels)
 #define MI_NAME(MI)            (progname)
 
+#define MI_COLORMAP(MI)                (MI_WIN_COLORMAP((MI)))
 #define MI_WIDTH(MI)           (MI_WIN_WIDTH((MI)))
 #define MI_HEIGHT(MI)          (MI_WIN_HEIGHT((MI)))
 #define MI_IS_ICONIC(MI)       (MI_WIN_IS_ICONIC((MI)))
@@ -90,6 +98,7 @@ ERROR!  Sorry, xlockmore.h requires ANSI C (gcc, for example.)
 #define MI_IS_VERBOSE(MI)      (MI_WIN_IS_VERBOSE(MI))
 #define MI_IS_INSTALL(MI)      (MI_WIN_IS_INSTALL(MI))
 #define MI_IS_DEBUG(MI)                (False)
+#define MI_IS_MOUSE(MI)                (False)
 
 #define MI_CLEARWINDOW(mi) XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi))
 
@@ -125,6 +134,18 @@ extern void HACK_DRAW(ModeInfo *);
 # define HACK_FREE 0
 #endif
 
+#ifdef HACK_RESHAPE
+  extern void HACK_RESHAPE(ModeInfo *, int width, int height);
+#else
+# define HACK_RESHAPE 0
+#endif
+
+#ifdef HACK_HANDLE_EVENT
+  extern Bool HACK_HANDLE_EVENT(ModeInfo *, XEvent *e);
+#else
+# define HACK_HANDLE_EVENT 0
+#endif
+
 
 /* Emit code for the entrypoint used by screenhack.c, and pass control
    down into xlockmore.c with the appropriate parameters.
@@ -160,8 +181,16 @@ void screenhack (Display *dpy, Window window)
                        False,
 #endif
 
+#ifdef EVENT_MASK
+                       EVENT_MASK,
+#else
+                       0,
+#endif
+
                        HACK_INIT,
                        HACK_DRAW,
+                       HACK_RESHAPE,
+                       HACK_HANDLE_EVENT,
                        HACK_FREE);
 }