X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fbouboule.c;h=82218fb45c61903c90e7c8ae255ff92c6efa4e85;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=29544f2da3bee277438f58d132dc444bc5e48d04;hpb=96a411663168b0ba5432b407a83be55f3df0c802;p=xscreensaver diff --git a/hacks/bouboule.c b/hacks/bouboule.c index 29544f2d..82218fb4 100644 --- a/hacks/bouboule.c +++ b/hacks/bouboule.c @@ -74,28 +74,28 @@ static const char sccsid[] = "@(#)bouboule.c 4.00 97/01/01 xlockmore"; */ #ifdef STANDALONE -# define PROGCLASS "Bouboule" -# define HACK_INIT init_bouboule -# define HACK_DRAW draw_bouboule -# define bouboule_opts xlockmore_opts # define DEFAULTS "*count: 100 \n" \ "*size: 15 \n" \ - "*delay: 5000 \n" \ + "*delay: 20000 \n" \ "*ncolors: 64 \n" \ - "*use3d: False \n" \ + "*use3d: True \n" \ "*delta3d: 1.5 \n" \ "*right3d: red \n" \ "*left3d: blue \n" \ "*both3d: magenta \n" \ - "*none3d: black \n" + "*none3d: black \n" \ + "*fpsSolid: true \n" \ + "*ignoreRotation: True \n" # define SMOOTH_COLORS +# define bouboule_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ # include "xlock.h" /* from the xlockmore distribution */ +# define ENTRYPOINT /**/ #endif /* !STANDALONE */ -ModeSpecOpt bouboule_opts = { +ENTRYPOINT ModeSpecOpt bouboule_opts = { 0, NULL, 0, NULL, NULL }; #define USEOLDXARCS 1 /* If 1, we use old xarcs list for erasing. @@ -297,8 +297,9 @@ sinfree(SinVariable * point) } } + /***************/ -void +ENTRYPOINT void init_bouboule(ModeInfo * mi) /***************/ @@ -528,7 +529,7 @@ init_bouboule(ModeInfo * mi) } /****************/ -void +ENTRYPOINT void draw_bouboule(ModeInfo * mi) /****************/ @@ -542,6 +543,10 @@ draw_bouboule(ModeInfo * mi) Star *star; XArc *arc = NULL, *arcleft = NULL; +#ifdef HAVE_JWXYZ /* Don't second-guess Quartz's double-buffering */ + XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi)); +#endif + #if (ADAPT_ERASE == 1) struct timeval tv1; struct timeval tv2; @@ -798,7 +803,7 @@ draw_bouboule(ModeInfo * mi) } } -void +ENTRYPOINT void release_bouboule(ModeInfo * mi) { if (starfield != NULL) { @@ -833,8 +838,28 @@ release_bouboule(ModeInfo * mi) } } -void +ENTRYPOINT void +reshape_bouboule(ModeInfo * mi, int width, int height) +{ + StarField *sp = &starfield[MI_SCREEN(mi)]; + sp->width = width; + sp->height = height; + sininit(&sp->x, + sp->x.alpha, sp->x.step, + ((double) sp->width) / 4.0, + 3.0 * ((double) sp->width) / 4.0, + POSCANRAND); + sininit(&sp->y, + sp->y.alpha, sp->y.step, + ((double) sp->height) / 4.0, + 3.0 * ((double) sp->height) / 4.0, + POSCANRAND); +} + +ENTRYPOINT void refresh_bouboule(ModeInfo * mi) { /* Do nothing, it will refresh by itself */ } + +XSCREENSAVER_MODULE ("Bouboule", bouboule)