X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fdiscrete.c;fp=hacks%2Fdiscrete.c;h=bfb4459a233324d31a0b45d8cb2c332d3498c7e0;hp=ecf4ce5c959f5a8816141410d7d6e3f3f52ac78c;hb=39809ded547bdbb08207d3e514950425215b4410;hpb=4361b69d3178d7fc98d0388f9a223af6c2651aba diff --git a/hacks/discrete.c b/hacks/discrete.c index ecf4ce5c..bfb4459a 100644 --- a/hacks/discrete.c +++ b/hacks/discrete.c @@ -39,11 +39,12 @@ static const char sccsid[] = "@(#)discrete.c 5.00 2000/11/01 xlockmore"; "*ncolors: 100 \n" \ "*fpsSolid: true \n" \ "*ignoreRotation: True \n" \ + "*lowrez: True \n" \ # define SMOOTH_COLORS # define release_discrete 0 +# define discrete_handle_event 0 # include "xlockmore.h" /* in xscreensaver distribution */ -# include "erase.h" #else /* STANDALONE */ # include "xlock.h" /* in xlockmore distribution */ #endif /* STANDALONE */ @@ -56,7 +57,7 @@ ENTRYPOINT ModeSpecOpt discrete_opts = #ifdef USE_MODULES ModStruct discrete_description = {"discrete", "init_discrete", "draw_discrete", (char *) NULL, - "refresh_discrete", "init_discrete", (char *) NULL, &discrete_opts, + "refresh_discrete", "init_discrete", "free_discrete", &discrete_opts, 1000, 4096, 2500, 1, 64, 1.0, "", "Shows various discrete maps", 0, NULL}; @@ -102,23 +103,17 @@ typedef struct { int sqrt_sign, std_sign; -#ifdef STANDALONE - eraser_state *eraser; -#endif - } discretestruct; static discretestruct *discretes = (discretestruct *) NULL; -static void free_discrete(ModeInfo * mi); - ENTRYPOINT void init_discrete (ModeInfo * mi) { double range; discretestruct *hp; - MI_INIT (mi, discretes, free_discrete); + MI_INIT (mi, discretes); hp = &discretes[MI_SCREEN(mi)]; hp->maxx = MI_WIDTH(mi); @@ -247,10 +242,8 @@ init_discrete (ModeInfo * mi) /* if fails will check later */ } -#ifndef STANDALONE /* Clear the background. */ MI_CLEARWINDOW(mi); -#endif XSetForeground(MI_DISPLAY(mi), MI_GC(mi), MI_WHITE_PIXEL(mi)); hp->count = 0; @@ -403,20 +396,13 @@ draw_discrete (ModeInfo * mi) int cycles = MI_CYCLES(mi); int i; - if (hp->eraser) { - hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser); - if (!hp->eraser) - init_discrete(mi); - return; - } - for (i = 0; i < 10; i++) { draw_discrete_1 (mi); hp->count++; } if (hp->count > cycles) { - hp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), hp->eraser); + init_discrete(mi); } } @@ -430,7 +416,7 @@ reshape_discrete(ModeInfo * mi, int width, int height) XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi)); } -static void +ENTRYPOINT void free_discrete(ModeInfo * mi) { discretestruct *hp = &discretes[MI_SCREEN(mi)]; @@ -441,25 +427,13 @@ free_discrete(ModeInfo * mi) } } +#ifndef STANDALONE ENTRYPOINT void refresh_discrete(ModeInfo * mi) { MI_CLEARWINDOW(mi); } - -ENTRYPOINT Bool -discrete_handle_event (ModeInfo *mi, XEvent *event) -{ - discretestruct *hp = &discretes[MI_SCREEN(mi)]; - if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) - { - hp->count = MI_CYCLES(mi); - return True; - } - return False; -} - - +#endif XSCREENSAVER_MODULE ("Discrete", discrete)