#include #include #include #define W 4096 #define H 4096 uint32_t p[H][W]; #define RGBA_LE(R, G, B, A) ((R)|((G)<<8)|((B)<<16)|((A)<<24)) #define RGBA_BE(R, G, B, A) (((R)<<24)|((G)<<16)|((B)<<8)|(A)) #define RGBA RGBA_LE #define RGB(R, G, B) RGBA(R, G, B, 255) int err_stdout(void) { if (ferror(stdout)) perror(NULL); else fprintf(stderr, "unexpected error on stdout\n"); return 1; } // not ideal random number generator #define RANDOM(N) (random()%(N)) void shuf_uint32_t(uint32_t *p, size_t n) { uint32_t *i = p; uint32_t tmp; if (n < 2) return; while (n) { size_t r = RANDOM(n); tmp = i[r]; i[r] = i[0]; i[0] = tmp; ++i, --n; } } int main() { int rv; rv = printf( "P7\n" "WIDTH %d\n" "HEIGHT %d\n" "DEPTH 4\n" "MAXVAL 255\n" "TUPLTYPE RGB_ALPHA\n" "ENDHDR\n", W, H ); if (rv < 0) return err_stdout(); uint32_t i = 255<<24; for (int y=0; y