}
}
-static void
+static Bool
self_similar_normalized (struct state *st,
int iterations,
double x1,
assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON);
assert (fabs (replacement [segment_count - 1].y) < EPSILON);
realign (x1, y1, x2, y2, segment_count, replacement);
- assert (fabs (x2 - (replacement [segment_count - 1].x)) < EPSILON);
- assert (fabs (y2 - (replacement [segment_count - 1].y)) < EPSILON);
+ /* jwz: I don't understand what these assertions are supposed to
+ be detecting, but let's just bail on the fractal instead of
+ crashing. */
+/* assert (fabs (x2 - (replacement [segment_count - 1].x)) < EPSILON);
+ assert (fabs (y2 - (replacement [segment_count - 1].y)) < EPSILON);*/
+ if (fabs (x2 - (replacement [segment_count - 1].x)) >= EPSILON ||
+ fabs (y2 - (replacement [segment_count - 1].y)) >= EPSILON) {
+ free (replacement);
+ return False;
+ }
x = x1;
y = y1;
for (index = 0; index < segment_count; ++index)
{
next_x = replacement [index].x;
next_y = replacement [index].y;
- self_similar_normalized (st,
+ if (!self_similar_normalized (st,
iterations - 1, x, y, next_x, next_y,
maximum_x, maximum_y,
minimum_x, minimum_y,
- segment_count, points);
+ segment_count, points)) {
+ free(replacement);
+ return False;
+ }
x = next_x;
y = next_y;
}
- free((void*)replacement);
+ free(replacement);
}
+ return True;
}
static void
st->context = XCreateGC (st->dpy, st->window, GCForeground | GCBackground,
&values);
st->color_count = MAXIMUM_COLOR_COUNT;
- make_color_loop (st->dpy, st->color_map,
+ make_color_loop (hack_attributes.screen, hack_attributes.visual,
+ st->color_map,
0, 1, 1,
120, 1, 1,
240, 1, 1,
0, 0);
}
st->draw_index++;
+ /* #### mi->recursion_depth = st->draw_index; */
if (st->draw_index >= st->draw_iterations)
{
ccurve_reshape (Display *dpy, Window window, void *closure,
unsigned int w, unsigned int h)
{
+ struct state *st = (struct state *) closure;
+ XWindowAttributes xgwa;
+ st->width = w;
+ st->height = h;
+ XGetWindowAttributes (st->dpy, st->window, &xgwa);
+ XFreePixmap (dpy, st->pixmap);
+ st->pixmap = XCreatePixmap (st->dpy, st->window, st->width, st->height,
+ xgwa.depth);
}
static Bool
".delay: 3",
".pause: 0.4",
".limit: 200000",
+#ifdef USE_IPHONE
+ "*ignoreRotation: True",
+#endif
0
};