Ejemplo n.º 1
0
static void rotate_off(void)
{
    if (rotate) {
	tl_free_timer(rotatetimer);
	rotate = 0;
    }
}
Ejemplo n.º 2
0
Archivo: save.c Proyecto: Azizou/XaoS
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");
    }
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
Archivo: bb.c Proyecto: stroucki/bb
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);
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
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);

}