X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fflag.c;h=874f5d8261e5a8c5800d282ca5f8e587a12e1e37;hb=39809ded547bdbb08207d3e514950425215b4410;hp=1cd68094b7ec6e641616a71488f6b8218b4fc785;hpb=7b34ef992563d7bcbb64cc5597dc45fa24470b05;p=xscreensaver diff --git a/hacks/flag.c b/hacks/flag.c index 1cd68094..874f5d82 100644 --- a/hacks/flag.c +++ b/hacks/flag.c @@ -47,9 +47,11 @@ static const char sccsid[] = "@(#)flag.c 4.02 97/04/01 xlockmore"; "*font: " DEF_FONT "\n" \ "*text: \n" \ "*fpsSolid: true \n" \ + "*lowrez: true \n" \ # define BRIGHT_COLORS # define UNIFORM_COLORS +# define release_flag 0 # define reshape_flag 0 # define flag_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ @@ -194,7 +196,7 @@ make_flag_bits(ModeInfo *mi) char *bitmap_name = get_string_resource (dpy, "bitmap", "Bitmap"); char *text = get_string_resource (dpy, "text", "Text"); -#ifdef HAVE_COCOA +#ifdef HAVE_JWXYZ bitmap_name = 0; /* #### always use default */ #endif @@ -268,7 +270,7 @@ make_flag_bits(ModeInfo *mi) # if defined(_AIX) sprintf(text, "%s\n%s %s.%s", uts.nodename, uts.sysname, uts.version, uts.release); -# elif defined(__APPLE__) /* MacOS X + XDarwin */ +# elif defined(__APPLE__) && !defined(USE_IPHONE) /* MacOS X + XDarwin */ { const char *file = "/System/Library/CoreServices/SystemVersion.plist"; @@ -432,11 +434,7 @@ init_flag(ModeInfo * mi) int size = MI_SIZE(mi); flagstruct *fp; - if (flags == NULL) { - if ((flags = (flagstruct *) calloc(MI_NUM_SCREENS(mi), - sizeof (flagstruct))) == NULL) - return; - } + MI_INIT (mi, flags); fp = &flags[MI_SCREEN(mi)]; make_flag_bits(mi); @@ -460,7 +458,7 @@ init_flag(ModeInfo * mi) if (!fp->initialized) { fp->dbufp = True; -# ifdef HAVE_COCOA /* Don't second-guess Quartz's double-buffering */ +# ifdef HAVE_JWXYZ /* Don't second-guess Quartz's double-buffering */ fp->dbufp = False; #endif fp->initialized = True; @@ -500,9 +498,6 @@ init_flag(ModeInfo * mi) XClearWindow(display, MI_WINDOW(mi)); } -ENTRYPOINT void release_flag(ModeInfo * mi); - - ENTRYPOINT void draw_flag(ModeInfo * mi) { @@ -535,34 +530,29 @@ draw_flag(ModeInfo * mi) fp->sidx %= (ANGLES * MI_NPIXELS(mi)); fp->timer++; if ((MI_CYCLES(mi) > 0) && (fp->timer >= MI_CYCLES(mi))) - { - release_flag(mi); init_flag(mi); - } } ENTRYPOINT void -release_flag(ModeInfo * mi) +free_flag(ModeInfo * mi) { - if (flags != NULL) { - int screen; - - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) - { - if (flags[screen].cache && flags[screen].dbufp) - XFreePixmap(MI_DISPLAY(mi), flags[screen].cache); - if (flags[screen].image) - XDestroyImage(flags[screen].image); - } - (void) free((void *) flags); - flags = NULL; - } + int screen = MI_SCREEN(mi); + + if (flags == NULL) + return; + + if (flags[screen].cache && flags[screen].dbufp) + XFreePixmap(MI_DISPLAY(mi), flags[screen].cache); + if (flags[screen].image) + XDestroyImage(flags[screen].image); } +#ifndef STANDALONE ENTRYPOINT void refresh_flag(ModeInfo * mi) { /* Do nothing, it will refresh by itself */ } +#endif XSCREENSAVER_MODULE ("Flag", flag)