X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fswirl.c;h=d647b0432dc4c4c892ba6feab3a96bc23b24b4d5;hb=refs%2Fremotes%2Fgithub%2Fmaster2;hp=dbeb9c187d213b1cbcfab105756f3509fe1fcc7e;hpb=49f5b54f312fe4ac2e9bc47581a72451bd0e8439;p=xscreensaver diff --git a/hacks/swirl.c b/hacks/swirl.c index dbeb9c18..d647b043 100644 --- a/hacks/swirl.c +++ b/hacks/swirl.c @@ -33,11 +33,12 @@ static const char sccsid[] = "@(#)swirl.c 4.00 97/01/01 xlockmore"; # define DEFAULTS "*count: 5 \n" \ "*delay: 10000 \n" \ "*ncolors: 200 \n" \ - "*useSHM: True \n" + "*useSHM: True \n" \ + "*fpsSolid: true \n" \ + "*ignoreRotation: True \n" \ + # define SMOOTH_COLORS # define WRITABLE_COLORS -# define reshape_swirl 0 -# define swirl_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ # ifdef HAVE_XSHM_EXTENSION # include "xshm.h" @@ -1351,7 +1352,7 @@ draw_swirl(ModeInfo * mi) if (swirl->drawing) { #ifdef STANDALONE if (mi->writable_p) - rotate_colors(MI_DISPLAY(mi), MI_COLORMAP(mi), + rotate_colors(mi->xgwa.screen, MI_COLORMAP(mi), swirl->rgb_values, swirl->colours, 1); #else /* !STANDALONE */ /* rotate the colours */ @@ -1373,7 +1374,7 @@ draw_swirl(ModeInfo * mi) } else { #ifdef STANDALONE if (mi->writable_p) - rotate_colors(MI_DISPLAY(mi), MI_COLORMAP(mi), + rotate_colors(mi->xgwa.screen, MI_COLORMAP(mi), swirl->rgb_values, swirl->colours, 1); #else /* !STANDALONE */ /* rotate the colours */ @@ -1411,10 +1412,9 @@ draw_swirl(ModeInfo * mi) #ifdef STANDALONE /* Pick a new colormap! */ XClearWindow (MI_DISPLAY(mi), MI_WINDOW(mi)); - free_colors (MI_DISPLAY(mi), MI_COLORMAP(mi), + free_colors (mi->xgwa.screen, MI_COLORMAP(mi), mi->colors, mi->npixels); - make_smooth_colormap (MI_DISPLAY(mi), - MI_VISUAL(mi), + make_smooth_colormap (mi->xgwa.screen, MI_VISUAL(mi), MI_COLORMAP(mi), mi->colors, &mi->npixels, True, &mi->writable_p, True); @@ -1431,6 +1431,13 @@ draw_swirl(ModeInfo * mi) } } +ENTRYPOINT void +reshape_swirl(ModeInfo * mi, int width, int height) +{ + XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi)); + init_swirl (mi); +} + /****************************************************************/ ENTRYPOINT void @@ -1477,4 +1484,15 @@ refresh_swirl (ModeInfo * mi) } } +ENTRYPOINT Bool +swirl_handle_event (ModeInfo *mi, XEvent *event) +{ + if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event)) + { + reshape_swirl (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + return True; + } + return False; +} + XSCREENSAVER_MODULE ("Swirl", swirl)