From 86f8f4fec9e71d541ceb707788cd282a370d6b7c Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 10 Nov 2020 17:39:00 +0100 Subject: [PATCH] add helper function to compute pixel indices --- src/image.h | 4 ++++ src/main.c | 2 +- src/ppm.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/image.h b/src/image.h index 6b94d52..3ee7d17 100644 --- a/src/image.h +++ b/src/image.h @@ -16,4 +16,8 @@ struct image { struct image *create_image(size_t w, size_t h); void destroy_image(struct image *image); +static inline size_t to_index(size_t h, size_t w, const struct image *image) { + return h * image->w + w; +} + #endif /* !IMAGE_H */ diff --git a/src/main.c b/src/main.c index d83f1b7..1695c83 100644 --- a/src/main.c +++ b/src/main.c @@ -9,7 +9,7 @@ static void fill_image(struct image *image) { for (size_t i = 0; i < image->h; ++i) { for (size_t j = 0; j < image->w; ++j) { - struct pixel *p = &image->buf[i * image->w + j]; + struct pixel *p = &image->buf[to_index(i, j, image)]; p->r = 255 * i / image->h; p->g = 255 * j / image->w; p->g = 255 * (i + j) / (image->h + image->w); diff --git a/src/ppm.c b/src/ppm.c index 5696c18..bb0a368 100644 --- a/src/ppm.c +++ b/src/ppm.c @@ -14,7 +14,7 @@ void print_ppm(const struct image *image, FILE *f) { for (size_t j = 0; j < image->w; ++j) { if (j != 0) fputc(' ', f); - const struct pixel *p = &image->buf[i * image->w + j]; + const struct pixel *p = &image->buf[to_index(i, j, image)]; fprintf(f, "%hhu %hhu %hhu", p->r, p->g, p->b); } fputc('\n', f);