libtthimage/Lib/foo.c

101 lines
1.8 KiB
C
Raw Normal View History

2022-06-26 02:23:53 +02:00
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
2023-09-17 22:36:08 +02:00
#include <math.h>
2022-06-26 02:23:53 +02:00
2022-06-26 22:55:56 +02:00
#include "../tthimage.h"
2022-06-26 02:23:53 +02:00
/* ============================== */
2023-11-14 13:06:02 +01:00
2024-08-15 12:08:37 +02:00
/* 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 { \
\
} while (0)
2024-08-15 13:43:12 +02:00
#define SZPIC 5777
2024-08-15 12:08:37 +02:00
double tthi_dtime(void);
2024-08-15 13:43:12 +02:00
void essai_pixcopy(int usemacro)
2023-11-14 13:06:02 +01:00
{
2024-08-15 12:08:37 +02:00
Image_Desc *alice, *bob;
2024-08-15 13:43:12 +02:00
int x, y, foo;
double T0, T1, perpix;
2024-08-15 12:08:37 +02:00
long count;
2023-11-14 13:06:02 +01:00
2024-08-15 12:08:37 +02:00
alice = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
bob = Image_alloc(SZPIC, SZPIC, IMAGE_RGB);
2023-11-14 13:06:02 +01:00
2024-08-15 13:43:12 +02:00
Image_pattern_000(alice, rand());
2024-08-15 12:08:37 +02:00
T0 = tthi_dtime();
count = 0L;
2023-11-14 13:06:02 +01:00
2024-08-15 13:43:12 +02:00
if (usemacro) {
for (y=0; y<SZPIC; y++) {
for (x=0; x<SZPIC; x++) {
PIXEL_COPY(alice, x, y, bob, x, y);
count++;
}
}
}
else {
for (y=0; y<SZPIC; y++) {
for (x=0; x<SZPIC; x++) {
Image_pixel_copy(alice, x, y, bob, x, y);
count++;
}
2024-08-15 12:08:37 +02:00
}
}
2023-09-17 22:36:08 +02:00
2024-08-15 12:08:37 +02:00
T1 = tthi_dtime();
2023-09-18 08:46:13 +02:00
2024-08-15 13:43:12 +02:00
foo = Image_TGA_save("bob.tga", bob, 0);
if (foo) {
fprintf(stderr, "%s: save -> %d\n", __func__, foo);
}
perpix = (T1-T0) / (double)count;
fprintf(stderr, "%s : %10ld pixels, elapsed %9.6f seconds ==> %5.3g µs/ppix\n",
usemacro ? "macro" : "func ",
count, T1-T0, perpix);
2023-09-18 08:46:13 +02:00
2024-08-15 12:08:37 +02:00
/* end */
2023-09-17 22:36:08 +02:00
}
2024-08-15 12:08:37 +02:00
/* ============================== */
2022-06-26 02:23:53 +02:00
int main(int argc, char *argv[])
{
2024-08-15 13:43:12 +02:00
int i;
2023-09-28 23:50:23 +02:00
2024-08-15 13:43:12 +02:00
fprintf(stderr, "******** %s is running *********\n", argv[0]);
2023-11-14 13:06:02 +01:00
if (argc > 1) {
fprintf(stderr, "argument: %s\n", argv[1]);
2024-08-15 12:08:37 +02:00
Image_print_version(2);
2023-11-14 13:06:02 +01:00
Image_print_sizeof_structs("foo");
}
else {
2024-08-15 13:43:12 +02:00
for (i=0; i<5; i++) {
essai_pixcopy(0);
essai_pixcopy(1);
}
2023-11-14 13:06:02 +01:00
}
2022-06-26 22:55:56 +02:00
2023-11-14 13:06:02 +01:00
/*
2022-10-28 05:54:07 +02:00
foo = essai_show_t16x24(NULL);
fprintf(stderr, "essai show t16x24 --> %d\n", foo);
2023-11-14 13:06:02 +01:00
*/
2023-09-17 22:36:08 +02:00
2022-06-26 02:23:53 +02:00
return 0;
}