sandpiles

sandpile art
git clone git://git.rr3.xyz/sandpiles
Log | Files | Refs | README | LICENSE

common.h (673B)


      1 #pragma once
      2 
      3 #include <rcx/def.h>
      4 #include <stdbool.h>
      5 #include <stdio.h>
      6 
      7 #define CHECK_FOR_HELP_OPTION(usage_format, argc, argv) \
      8 	if ((argc) > 1 && (strcmp((argv)[1], "-h") == 0 \
      9 			|| strcmp((argv)[1], "--help") == 0)) { \
     10 		printf(usage_format, argv[0]); \
     11 		return 0; \
     12 	}
     13 
     14 typedef struct rgba Rgba;
     15 typedef struct image Image;
     16 typedef struct sandpile Sandpile;
     17 
     18 struct rgba {
     19 	u16 r, g, b, a;
     20 };
     21 
     22 struct image {
     23 	u32 w, h;
     24 	Rgba *pixels;
     25 };
     26 
     27 struct sandpile {
     28 	u32 w, h;
     29 	u32 *sand;
     30 };
     31 
     32 u16 parse_rgba_channel(char *s, bool sixteen);
     33 
     34 void ff_fwrite(FILE *f, Image img);
     35 Image ff_fread(FILE *f);
     36 
     37 void sp_fwrite(FILE *f, Sandpile sp);
     38 Sandpile sp_fread(FILE *f);