static void rotate_off(void) { if (rotate) { tl_free_timer(rotatetimer); rotate = 0; } }
void uih_save_disable(struct uih_context *uih) { if (uih->save) { last = 1; if (uih->savec->mode >= UIH_SAVEANIMATION) uih_saveframe(uih); if (xio_close(uih->savec->file)) outputerror(uih); uih->save = 0; free(uih->savec->fcontext); tl_free_timer(uih->savec->timer); tl_free_timer(uih->savec->synctimer); free(uih->savec); uih_updatemenus(uih, "save"); } }
void speed_test (fractal_context * c, struct image *img) { //unsigned int sum; tl_timer *t; int time; unsigned int i; set_fractalc (c, img); t = tl_create_timer (); cfractalc.maxiter = 100; #ifdef SLOWFUNCPTR i = calculateswitch (0.0, 0.0, 0.0, 0.0, 0); #else (void) cfractalc.currentformula->calculate (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->calculate_periodicity != NULL) (void) cfractalc.currentformula->calculate_periodicity (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->smooth_calculate != NULL) (void) cfractalc.currentformula->smooth_calculate (0.0, 0.0, 0.0, 0.0); if (cfractalc.currentformula->smooth_calculate_periodicity != NULL) (void) cfractalc.currentformula->smooth_calculate_periodicity (0.0, 0.0, 0.0, 0.0); #endif cfractalc.maxiter = 20000000; tl_update_time (); tl_reset_timer (t); /*sum = rdtsc (); */ #ifdef SLOWFUNCPTR i = calculateswitch (0.0, 0.0, 0.0, 0.0, 0); #else i = cfractalc.currentformula->calculate (0.0, 0.0, 0.0, 0.0); #endif /*sum -= rdtsc (); printf ("%f\n", (double) (-sum) / cfractalc.maxiter); */ tl_update_time (); time = tl_lookup_timer (t); x_message ("Result:%i Formulaname:%s Time:%i Mloops per sec:%.2f", (int) i, cfractalc.currentformula->name[0], time, cfractalc.maxiter / (double) time); #ifndef SLOWFUNCPTR if (cfractalc.currentformula->smooth_calculate != NULL) { tl_update_time (); tl_reset_timer (t); i = cfractalc.currentformula->smooth_calculate (0.0, 0.0, 0.0, 0.0); tl_update_time (); time = tl_lookup_timer (t); x_message ("Result:%i Formulaname:%s Time:%i Mloops per sec:%.2f", (int) i, cfractalc.currentformula->name[0], time, cfractalc.maxiter / (double) time); } #endif tl_free_timer (t); }
void timestuff(int rate, void (*control) (int), void (*draw) (void), int maxtime) { int waitmode = 0, t; tl_timer *timer; bbupdate(); /*starttime = TIME; */ endtime = starttime + maxtime; timer = tl_create_timer(); if (control == NULL) { rate = -40; } if (rate < 0) { waitmode = 1, rate = -rate; control1 = control; tl_set_multihandler(timer, mycontrol); } else tl_set_multihandler(timer, control); tl_set_interval(timer, 1000000 / rate); tl_add_timer(syncgroup, timer); tl_reset_timer(timer); if (control != NULL) control(1); while (!finish_stuff && TIME < endtime) { called = 0; t = tl_process_group(syncgroup); bbupdate(); if (TIME > endtime) break; #ifdef __DJGPP__ if (0) #else if (!called && waitmode) #endif tl_sleep(t); else { if (draw != NULL) draw(); } } starttime = endtime; tl_free_timer(timer); }
void uih_rmmessage (uih_context * c, int pid) { int i; for (i = 0; i < NMESSAGES && c->messg.pid[i] != pid; i++); if (i == NMESSAGES) return; if (c->messg.message[i] == NULL) return; free (c->messg.message[i]); tl_remove_timer (c->messg.messagetimer[i]); tl_free_timer (c->messg.messagetimer[i]); c->messg.message[i] = NULL; for (; i < NMESSAGES - 1; i++) { c->messg.message[i] = c->messg.message[i + 1]; c->messg.messagetimer[i] = c->messg.messagetimer[i + 1]; c->messg.messagetype[i] = c->messg.messagetype[i + 1]; c->messg.pid[i] = c->messg.pid[i + 1]; } c->messg.message[NMESSAGES - 1] = NULL; c->display = 1; }
void scene6(void) { int width, height, scanline; int i, formula = 0; char *buffer1, *buffer2; displayed = 0; incalculation = 0; fastmode = 2; interruptiblemode = 0; autopilot = 0; maxstep = MAXSTEP; speedup = STEP; step = 0; tbreak = 0; maintimer = tl_create_timer(); signal(SIGFPE, SIG_IGN); width = aa_imgwidth(context); height = aa_imgheight(context); scanline = width; buffer1 = context->imagebuffer; buffer2 = malloc(width * height); endtime = starttime + ETIME1; params->bright = -255; zcontext = make_context(width, height, scanline, 0, 1, flip_buffers, ui_waitfunc, buffer1, buffer2, get_pixelwidth(width), get_pixelheight(height)); if (!zcontext) { exit(-1); } set_formula(zcontext, formula); for (i = 0; i < 255; i++) { /*zcontext->colors[i] = (i * 15) % 255 + 1; */ zcontext->colors[i] = (i * 8) % 255 + 1; } zcontext->colors[0] = 0; zcontext->num_colors = 255; tbreak = 2; zcontext->maxiter = 150; fastmode--; zcontext->range = 8; zcontext->incoloringmode = 0; zcontext->coloringmode = 0; zcontext->plane = 0; ui_do_fractal(NEW_IMAGE); ui_autopilot(); speedup = 1 * STEP; maxstep *= 5; step = -maxstep; tl_process_group(syncgroup, NULL); bbupdate(); tl_reset_timer(maintimer); main_loop(); starttime = endtime; context->imagebuffer = buffer1; free(buffer2); tl_free_timer(maintimer); params->bright = 0; params->randomval = 0; initlepic(); drawptr = mydraw1; timestuff(-60, ctrllepic, draw, 2000000); drawptr = mydraw; /*timestuff(60, NULL, draw, 4 * 1000000); */ /*timestuff(20, blur, draw, 4 * 1000000); */ timestuff(60, NULL, draw, 3 * 1000000); }