Ejemplo n.º 1
0
/* generate an XImage of from[][][] and draw it on the screen */
static void plain_draw(struct state *st, int k)
{
	if (st->xy_coo[k].x+2*st->radius+st->speed+2 > st->orig_map->width ||
			st->xy_coo[k].y+2*st->radius+st->speed+2 > st->orig_map->height)
		return;

	st->draw_routine(st, st->orig_map, st->buffer_map, st->xy_coo[k].x, st->xy_coo[k].y, st->fast_from);

	put_xshm_image(st->dpy, st->window, st->gc, st->buffer_map, 0, 0, st->xy_coo[k].x, st->xy_coo[k].y,
	               2*st->radius+st->speed+2, 2*st->radius+st->speed+2, &st->shm_info);
}
Ejemplo n.º 2
0
/* render and display the current model */
static void renderFrame (struct state *st)
{
    int n;

    /* This assumes black is zero. */
    memset (st->workImage->data, 0, 
	    st->workImage->bytes_per_line * st->workImage->height);

    sortTiles (st);

    for (n = 0; n < st->tileCount; n++)
    {
	renderTile (st, st->sortedTiles[n]);
    }

    put_xshm_image (st->dpy, st->window, st->backgroundGC, st->workImage, 0, 0, 0, 0,
                    st->windowWidth, st->windowHeight, &st->shmInfo);
}