From ab39114203f697faafacdbfa2515325789d27035 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sun, 18 Jul 2021 17:38:28 +0200 Subject: [PATCH] en cours ecriture drawing --- builds/fdf.o | Bin 107912 -> 108712 bytes fdf | Bin 98808 -> 104048 bytes includes/fdf.h | 13 +++-- srcs/fdf.c | 130 ++++++++++++++++++++++++++++++------------------- 4 files changed, 88 insertions(+), 55 deletions(-) diff --git a/builds/fdf.o b/builds/fdf.o index efdc23a9bb171100537f3f3f58d419af5d04943c..5fbeb164d71d530864187d27f8ed90c310d2e988 100644 GIT binary patch delta 26375 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 F{XfUX=>Px# delta 25529 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 MuFSr9Hf!?#04uR7_W%F@ delta 21168 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 + while (y < fdf->img_size_y) { x = 0; - while ((x * map->img_bpp / 8) < map->img_sizel) + while ((x * fdf->img_bpp / 8) < fdf->img_sizel) { - draw_pixel(map, x, y, 0xffffff); - x += 4; + draw_pixel(fdf, x, y, 0xffffff); + x += fdf->offset; } - y += 4; + y += fdf->offset; } // put image on screen - mlx_put_image_to_window(map->mlx_ptr, map->win_ptr, map->img_ptr, 0, 0); + mlx_put_image_to_window(fdf->mlx_ptr, fdf->win_ptr, fdf->img_ptr, 0, 0); // put rotation on screen - rotation_state(map); + rotation_state(fdf); } int main(int ac, char **av) { - t_map *map; + t_fdf *fdf; (void)av; (void)ac; - map = init_map(); + fdf = init_fdf(); // receive a keypress event - mlx_hook(map->win_ptr, 2, 1L << 0, keypress, map); + mlx_hook(fdf->win_ptr, 2, 1L << 0, keypress, fdf); // receive event when clicking the button to close the window - mlx_hook(map->win_ptr, 17, 1L << 17, shut_down, map); + mlx_hook(fdf->win_ptr, 17, 1L << 17, shut_down, fdf); // run window when no events occurs - mlx_loop(map->mlx_ptr); + mlx_loop(fdf->mlx_ptr); return (0); } -int keypress(int keycode, t_map *map) +int keypress(int keycode, t_fdf *fdf) { if (keycode == ESCAPE) - shut_down(map); + shut_down(fdf); else if (keycode == LEFT) - (map->rot_x) -= 1; + (fdf->rot_x) -= 1; else if (keycode == RIGHT) - (map->rot_x) += 1; + (fdf->rot_x) += 1; else if (keycode == UP) - (map->rot_y) += 1; + (fdf->rot_y) += 1; else if (keycode == DOWN) - (map->rot_y) -= 1; + (fdf->rot_y) -= 1; else print_keycode(keycode); // draw image - draw_image(map); + draw_image(fdf); return (0); } @@ -72,59 +73,86 @@ int print_keycode(int keycode) return(0); } -void draw_pixel(t_map *map, int x, int y, int color) +void draw_pixel(t_fdf *fdf, int x, int y, int color) { int position; - position = y * map->img_sizel + x * map->img_bpp / 8; - *(unsigned int*)(map->img_addr + position) = color; + position = y * fdf->img_sizel + x * fdf->img_bpp / 8; + *(unsigned int*)(fdf->img_addr + position) = color; } -void rotation_state(t_map *map) +void rotation_state(t_fdf *fdf) { char *position; int x; int y; - x = map->img_size_x - 10; - y = map->img_size_y - 10; - position = ft_strjoin(ft_itoa(map->rot_x), " | "); - position = ft_strjoin(position, ft_itoa(map->rot_y)); + x = fdf->img_size_x - 10; + y = fdf->img_size_y - 10; + position = ft_strjoin(ft_itoa(fdf->rot_x), " | "); + position = ft_strjoin(position, ft_itoa(fdf->rot_y)); x -= ft_strlen(position) * 6; - mlx_string_put(map->mlx_ptr, map->win_ptr, x, y, 0xffffff, position); + mlx_string_put(fdf->mlx_ptr, fdf->win_ptr, x, y, 0xffffff, position); } -t_map *init_map(void) +t_fdf *init_fdf(void) { - t_map *map; + t_fdf *fdf; - map = malloc(sizeof(t_map)); + fdf = malloc(sizeof(t_fdf)); + // map offset and margin + fdf->offset = 10; + fdf->margin = 50; + // parse map + fdf->map = parse_map(fdf); // size window - map->win_size_x = 500; - map->win_size_y = 500; + fdf->win_size_x = fdf->map_size_x + 2 * fdf->margin; + fdf->win_size_y = fdf->map_size_y + 2 * fdf->margin; // size image - map->img_size_x = map->win_size_x; - map->img_size_y = map->win_size_y; + fdf->img_size_x = fdf->win_size_x; + fdf->img_size_y = fdf->win_size_y; // view rotation - map->rot_x = 0; - map->rot_y = 0; + fdf->rot_x = 0; + fdf->rot_y = 0; // init connexion to server - map->mlx_ptr = mlx_init(); + fdf->mlx_ptr = mlx_init(); // create the window - map->win_ptr = mlx_new_window(map->mlx_ptr, map->win_size_x, map->win_size_y, "test"); + fdf->win_ptr = mlx_new_window(fdf->mlx_ptr, fdf->win_size_x, fdf->win_size_y, "test"); // create image - map->img_ptr = mlx_new_image(map->mlx_ptr, map->img_size_x, map->img_size_y); - map->img_addr = mlx_get_data_addr(map->img_ptr, &(map->img_bpp), &(map->img_sizel), &(map->img_endian)); + fdf->img_ptr = mlx_new_image(fdf->mlx_ptr, fdf->img_size_x, fdf->img_size_y); + fdf->img_addr = mlx_get_data_addr(fdf->img_ptr, &(fdf->img_bpp), &(fdf->img_sizel), &(fdf->img_endian)); // draw image - draw_image(map); + draw_image(fdf); + return (fdf); +} + +int **parse_map(t_fdf *fdf) +{ + int **map; + int i; + int j; + + map = ft_calloc(10, sizeof(map)); + i = -1; + while (++i < 10) + { + map[i] = ft_calloc(15, sizeof(*map)); + j = -1; + while(++j < 15) + map[i][j] = 0; + } + map[3][6] = 10; + // size map + fdf->map_size_x = --j * fdf->offset + 1; + fdf->map_size_y = --i * fdf->offset + 1; return (map); } -int shut_down(t_map *map) +int shut_down(t_fdf *fdf) { - mlx_destroy_window(map->mlx_ptr, map->win_ptr); + mlx_destroy_window(fdf->mlx_ptr, fdf->win_ptr); exit(0); - free(map); + free(fdf); return (0); }