X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fgrav.c;h=b909e8348dd40744ce22038b2c03fb53d3f878f9;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=aec897d559de8a0e7fb4d6c3a05f2001fd41830e;hpb=96a411663168b0ba5432b407a83be55f3df0c802;p=xscreensaver diff --git a/hacks/grav.c b/hacks/grav.c index aec897d5..b909e834 100644 --- a/hacks/grav.c +++ b/hacks/grav.c @@ -29,47 +29,46 @@ static const char sccsid[] = "@(#)grav.c 5.00 2000/11/01 xlockmore"; #ifdef STANDALONE #define MODE_grav -#define PROGCLASS "Grav" -#define HACK_INIT init_grav -#define HACK_DRAW draw_grav -#define grav_opts xlockmore_opts -#define DEFAULTS "*delay: 10000 \n" \ - "*count: 12 \n" \ - "*ncolors: 64 \n" +#define DEFAULTS "*delay: 10000 \n" \ + "*count: 12 \n" \ + "*ncolors: 64 \n" \ + "*fpsSolid: true \n" \ + "*ignoreRotation: True \n" \ + #define BRIGHT_COLORS -#include "xlockmore.h" /* in xscreensaver distribution */ +# define grav_handle_event 0 +# include "xlockmore.h" /* in xscreensaver distribution */ #else /* STANDALONE */ -#include "xlock.h" /* in xlockmore distribution */ - +# include "xlock.h" /* in xlockmore distribution */ #endif /* STANDALONE */ #ifdef MODE_grav -#define DEF_DECAY "False" /* Damping for decaying orbits */ -#define DEF_TRAIL "False" /* For trails (works good in mono only) */ +#define DEF_DECAY "True" /* Damping for decaying orbits */ +#define DEF_TRAIL "True" /* For trails (works good in mono only) */ static Bool decay; static Bool trail; static XrmOptionDescRec opts[] = { - {(char *) "-decay", (char *) ".grav.decay", XrmoptionNoArg, (caddr_t) "on"}, - {(char *) "+decay", (char *) ".grav.decay", XrmoptionNoArg, (caddr_t) "off"}, - {(char *) "-trail", (char *) ".grav.trail", XrmoptionNoArg, (caddr_t) "on"}, - {(char *) "+trail", (char *) ".grav.trail", XrmoptionNoArg, (caddr_t) "off"} + {"-decay", ".grav.decay", XrmoptionNoArg, "on"}, + {"+decay", ".grav.decay", XrmoptionNoArg, "off"}, + {"-trail", ".grav.trail", XrmoptionNoArg, "on"}, + {"+trail", ".grav.trail", XrmoptionNoArg, "off"} }; static argtype vars[] = { - {(caddr_t *) & decay, (char *) "decay", (char *) "Decay", (char *) DEF_DECAY, t_Bool}, - {(caddr_t *) & trail, (char *) "trail", (char *) "Trail", (char *) DEF_TRAIL, t_Bool} + {&decay, "decay", "Decay", DEF_DECAY, t_Bool}, + {&trail, "trail", "Trail", DEF_TRAIL, t_Bool} }; static OptionStruct desc[] = { - {(char *) "-/+decay", (char *) "turn on/off decaying orbits"}, - {(char *) "-/+trail", (char *) "turn on/off trail dots"} + {"-/+decay", "turn on/off decaying orbits"}, + {"-/+trail", "turn on/off trail dots"} }; -ModeSpecOpt grav_opts = +ENTRYPOINT ModeSpecOpt grav_opts = {sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc}; #ifdef USE_MODULES @@ -145,6 +144,10 @@ init_planet(ModeInfo * mi, planetstruct * planet) GC gc = MI_GC(mi); gravstruct *gp = &gravs[MI_SCREEN(mi)]; +# ifdef HAVE_JWXYZ + jwxyz_XSetAntiAliasing (MI_DISPLAY(mi), MI_GC(mi), False); +# endif + if (MI_NPIXELS(mi) > 2) planet->colors = MI_PIXEL(mi, NRAND(MI_NPIXELS(mi))); else @@ -232,7 +235,7 @@ draw_planet(ModeInfo * mi, planetstruct * planet) Planet(gp->x, gp->y); } -void +ENTRYPOINT void init_grav(ModeInfo * mi) { Display *display = MI_DISPLAY(mi); @@ -281,7 +284,7 @@ init_grav(ModeInfo * mi) 0, 23040); } -void +ENTRYPOINT void draw_grav(ModeInfo * mi) { Display *display = MI_DISPLAY(mi); @@ -324,7 +327,16 @@ draw_grav(ModeInfo * mi) draw_planet(mi, &gp->planets[ball]); } -void +ENTRYPOINT void +reshape_grav(ModeInfo * mi, int width, int height) +{ + gravstruct *gp = &gravs[MI_SCREEN(mi)]; + gp->width = width; + gp->height = height; + XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi)); +} + +ENTRYPOINT void release_grav(ModeInfo * mi) { if (gravs != NULL) { @@ -341,10 +353,12 @@ release_grav(ModeInfo * mi) } } -void +ENTRYPOINT void refresh_grav(ModeInfo * mi) { MI_CLEARWINDOW(mi); } +XSCREENSAVER_MODULE ("Grav", grav) + #endif /* MODE_grav */