#include #include #include #include #include #include #include #include "boid.h" #include "vec.h" Display *disp; Window Root; Window win; Visual *vis; int scr; unsigned int depth; GC fg,bg; int blk,wht; int width,height; Colormap cmap; XColor darkgray; XColor yellow; XColor blue; XColor outlines[32]; #define GRATUITOUS int main(int argc, char **argv) { Pixmap background, freshmap; int numboids=30; Boid *boids; int i; Vec center, avg_velocity; int root=0; srandom(time(NULL)); SetupDisplay(); for(i=1; ipos); vec_add(avg_velocity, boids[i]->vel); } for(i=0; ionscreen) { draw_boid(boids[i], freshmap); } } #ifdef GRATUITOUS XClearWindow(disp,win); #else rx=minx;ry=miny;rw=maxx-minx;rh=maxy-miny; if (rx<0) rx=0; if (ry<0) ry=0; if (rw>width) rw=width; if (rh>height) rh=height; XClearArea(disp,win,rx,ry,rw,rh,False); XSync(disp,False); XCopyArea(disp, background, freshmap, fg, rx, ry, rw, rh, rx, ry); #endif XFlush(disp); usleep(1000000/30); } return 0; }