#include #include #include #include #include #include "../tthimage.h" /* ============================== */ /* new Wed Aug 14 19:17:20 UTC 2024 * * parameters : * ip: Image_Desc * of input picture * ix, iy: coordinate of the pixel in this pic. * op, ox, oy : same things for output picture */ #define PIXEL_COPY(ip, ix, iy, op, ox, oy) \ do { \ (op->Rpix[oy])[ox] = (ip->Rpix[iy])[ix]; \ (op->Gpix[oy])[ox] = (ip->Gpix[iy])[ix]; \ (op->Bpix[oy])[ox] = (ip->Bpix[iy])[ix]; \ } while (0) #define SZPIC 4096 void essai_pixcopy(int usemacro) { Image_Desc *alice, *bob; int x, y, foo; double T0, T1, perpix; long count; char *fname; alice = Image_alloc(SZPIC, SZPIC, IMAGE_RGB); bob = Image_alloc(SZPIC, SZPIC, IMAGE_RGB); Image_pattern_000(alice, 0); Image_TGA_save("alice.tga", alice, 0); T0 = tthi_dtime(); count = 0L; if (usemacro) { for (y=0; y %d\n", __func__, foo); } perpix = ((T1-T0) / (double)count) * 1e6; fprintf(stderr, "%s : %10ld pixels, elapsed %9.6f seconds ==> %9.6f µs/pix\n", usemacro ? "macro" : "func ", count, T1-T0, perpix); /* end */ } /* ============================== */ int main(int argc, char *argv[]) { int i; fprintf(stderr, "*********** %s ************\n", argv[0]); if (argc > 1) { fprintf(stderr, "argument: %s\n", argv[1]); Image_print_version(2); Image_print_sizeof_structs("foo"); } else { for (i=0; i<5; i++) { essai_pixcopy(0); essai_pixcopy(1); } } /* foo = essai_show_t16x24(NULL); fprintf(stderr, "essai show t16x24 --> %d\n", foo); */ return 0; }