#include #include #include #include #include #include #include #include "draw.h" #include "fb.h" #include "rototiller.h" #include "starslib.h" /* Copyright (C) 2017 Philip J. Freeman */ static void stars(fb_fragment_t *fragment) { static int initialized, z; static struct universe* u; struct return_point rp; int x, y, width = fragment->width, height = fragment->height; if (!initialized) { z = 128; srand(time(NULL) + getpid()); // Initialize the stars lib (and pre-add a bunch of stars) new_universe(&u, width, height, z); for(y=0; ybuf, 0, ((fragment->width << 2) + fragment->stride) * fragment->height); // draw stars for (;;) { int ret = process_point( u, &rp ); if (ret==0) break; if (ret==1) fb_fragment_put_pixel_unchecked(fragment, rp.x+(width/2), rp.y+(height/2), makergb(0xFF, 0xFF, 0xFF, (float)rp.opacity/OPACITY_MAX) ); } // add stars at horizon for (x=0; x