-/* xscreensaver, Copyright (c) 1992-2013 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2014 Jamie Zawinski <jwz@jwz.org>
*
* reaction/diffusion textures
* Copyright (c) 1997 Scott Draves spot@transmeta.com
st->height = get_integer_resource (st->dpy, "height", "Integer");
if (st->width <= 0 && st->height <= 0 && (R & 1))
- st->width = st->height = 48 + BELLRAND(256);
+ st->width = st->height = 64 + BELLRAND(512);
- if (st->width <= 0) st->width = 48 + BELLRAND(256);
- if (st->height <= 0) st->height = 48 + BELLRAND(256);
+ if (st->width <= 0) st->width = 64 + BELLRAND(512);
+ if (st->height <= 0) st->height = 64 + BELLRAND(512);
+
+ if (st->width > st->xgwa.width) st->width = st->xgwa.width;
+ if (st->height > st->xgwa.height) st->height = st->xgwa.height;
/* jwz: when (and only when) XSHM is in use on an SGI 8-bit visual,
we get shear unless st->width is a multiple of 4. I don't understand
if (!(st->frame%st->epoch_time)) {
int s;
- if (0 != st->frame) {
- int tt = st->epoch_time / 500;
- if (tt > 15)
- tt = 15;
- /*sleep(tt);*/
- }
for (i = 0; i < st->npix; i++) {
/* equilibrium */
/* John E. Pearson "Complex Patterns in a Simple System"
Science, July 1993 */
- uvv = (((r1 * r2) >> bps) * r2) >> bps;
+ /* uvv = (((r1 * r2) >> bps) * r2) >> bps; */
+ /* avoid signed integer overflow */
+ uvv = ((((r1 >> 1)* r2) >> bps) * r2) >> (bps - 1);
switch (st->reaction) { /* costs 4% */
case 0:
r1 += 4 * (((28 * (mx-r1)) >> 10) - uvv);
#else
"*useSHM: False",
#endif
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
"*ignoreRotation: True",
#endif
0
{
struct state *st = (struct state *) calloc (1, sizeof(*st));
XGCValues gcv;
- int w2;
int vdepth;
st->dpy = dpy;
}
st->npix = (st->width + 2) * (st->height + 2);
- w2 = st->width + 2;
/* gcv.function = GXcopy;*/
st->gc = XCreateGC(st->dpy, win, 0 /*GCFunction*/, &gcv);
vdepth = visual_depth(DefaultScreenOfDisplay(st->dpy), st->xgwa.visual);