/* testing some random funcs. */ #include #include #include #include #include #include "floatimg.h" int verbosity; /* --------------------------------------------------------------------- */ int add(FloatImg *a, FloatImg *b) { int x, y; int offset; double tb; fimg_timer_set(0); for (x=0; xwidth; x++) { for (y=0; yheight; y++) { offset = x + (y * a->width); a->R[offset] += b->R[offset]; a->G[offset] += b->G[offset]; a->B[offset] += b->B[offset]; } } tb = fimg_timer_get(0); fprintf(stderr, "%s = %f seconds\n", __func__, tb); return 0; } /* --------------------------------------------------------------------- */ void fait_un_dessin(char *fname) { FloatImg dessin; double tb; puts(""); fimg_timer_set(0); fimg_create(&dessin, 3200, 2400, 3); fimg_draw_something(&dessin); fimg_dump_to_file(&dessin, "dessin.fimg", 0); fimg_destroy(&dessin); tb = fimg_timer_get(0); fprintf(stderr, "%s = %f seconds\n", __func__, tb); puts(""); } /* --------------------------------------------------------------------- */ int parse_WxH(char *str, int *pw, int *ph) { // char *ptr; int foo, w, h; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( '%s' %p %p )\n", __func__, str, pw, ph); #endif foo = sscanf(str, "%dx%d", &w, &h); if (2 != foo) { fprintf(stderr, "%s : arg '%s' is invalid\n", __func__, str); return foo; } *pw = w; *ph = h; return 2; } /* --------------------------------------------------------------------- */ void help(int k) { puts("Options :"); puts("\t-d WxH\timage size"); exit(0); } /* --------------------------------------------------------------------- */ int main(int argc, char *argv[]) { FloatImg fimgA, fimgB; int foo, opt; int W = 800, H = 600; double tb; while ((opt = getopt(argc, argv, "d:hv")) != -1) { switch(opt) { case 'd': parse_WxH(optarg, &W, &H); break; case 'h': help(0); break; case 'v': verbosity++; break; } } if (verbosity) fimg_print_version(0); fimg_create(&fimgA, W, H, 3); fimg_create(&fimgB, W, H, 3); fimg_timer_set(0); fimg_drand48(&fimgB, 100.0); fimg_drand48(&fimgA, 100.0); add(&fimgA, &fimgB); tb = fimg_timer_get(0); fprintf(stderr, "%s = %f seconds\n", __func__, tb); foo = fimg_save_as_pnm(&fimgA, "drand48.pnm", 0); fimg_destroy(&fimgA); fimg_destroy(&fimgB); return 0; } /* --------------------------------------------------------------------- */