X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fflame.c;h=7b590563f20c4eb249a2630ced15fd2a2f322612;hb=aa75c7476aeaa84cf3abc192b376a8b03c325213;hp=01f16ababa6c235a7e66b03c2781d0992570d9f6;hpb=50be9bb40dc60130c99ffa568e6677779904ff70;p=xscreensaver diff --git a/hacks/flame.c b/hacks/flame.c index 01f16aba..7b590563 100644 --- a/hacks/flame.c +++ b/hacks/flame.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1993-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1993-2014 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -151,7 +151,8 @@ flame_init (Display *dpy, Window window) st->ncolors = get_integer_resource (st->dpy, "colors", "Integer"); if (st->ncolors <= 0) st->ncolors = 128; st->colors = (XColor *) malloc ((st->ncolors+1) * sizeof (*st->colors)); - make_smooth_colormap (st->dpy, xgwa.visual, xgwa.colormap, st->colors, &st->ncolors, + make_smooth_colormap (xgwa.screen, xgwa.visual, xgwa.colormap, + st->colors, &st->ncolors, True, 0, True); if (st->ncolors <= 2) mono_p = True, st->ncolors = 0; @@ -173,7 +174,7 @@ flame_init (Display *dpy, Window window) static int recurse (struct state *st, double x, double y, int l, Display *dpy, Window win) { - int /*xp, yp,*/ i; + int i; double nx, ny; if (l == st->max_levels) @@ -184,8 +185,8 @@ recurse (struct state *st, double x, double y, int l, Display *dpy, Window win) if (x > -1.0 && x < 1.0 && y > -1.0 && y < 1.0) { -/* xp = st->points[st->num_points].x = (int) ((st->width / 2) * (x + 1.0)); - yp = st->points[st->num_points].y = (int) ((st->height / 2) * (y + 1.0));*/ + st->points[st->num_points].x = (int) ((st->width / 2) * (x + 1.0)); + st->points[st->num_points].y = (int) ((st->height / 2) * (y + 1.0)); st->num_points++; if (st->num_points >= POINT_BUFFER_SIZE) { @@ -203,7 +204,7 @@ recurse (struct state *st, double x, double y, int l, Display *dpy, Window win) "I think this happens on HPUX. I think it's non-IEEE to generate an exception instead of a silent NaN." */ - if ((abs(x) > 1.0E5) || (abs(y) > 1.0E5)) + if ((fabs(x) > 1.0E5) || (fabs(y) > 1.0E5)) x = x / y; nx = st->f[0][0][i] * x + st->f[0][1][i] * y + st->f[0][2][i]; @@ -418,6 +419,9 @@ static const char *flame_defaults [] = { "*delay: 50000", "*delay2: 2000000", "*points: 10000", +#ifdef HAVE_MOBILE + "*ignoreRotation: True", +#endif 0 }; @@ -434,11 +438,20 @@ static void flame_reshape (Display *dpy, Window window, void *closure, unsigned int w, unsigned int h) { + struct state *st = (struct state *) closure; + st->width = w; + st->height = h; } static Bool flame_event (Display *dpy, Window window, void *closure, XEvent *event) { + struct state *st = (struct state *) closure; + if (screenhack_event_helper (dpy, window, event)) + { + st->do_reset = 1; + return True; + } return False; }