Cub3D
Loading...
Searching...
No Matches
init_mlx_image.c
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* init_mlx_image.c :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: kamitsui <kamitsui@student.42tokyo.jp> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2024/10/12 12:49:12 by kamitsui #+# #+# */
9/* Updated: 2024/10/18 07:00:17 by kamitsui ### ########.fr */
10/* */
11/* ************************************************************************** */
12
13#include "cub3d.h"
14
15static int init_3d_image(void *mlx, t_img *img_3d)
16{
17 void *img;
18 char *addr;
19 int *bits_per_pixel;
20 int *size_line;
21 int *endian;
22
23 img = (void *)mlx_new_image(mlx, IMG_3D_WIDTH, WIN_HEIGHT);
24 if (img == NULL)
25 return (EXIT_FAILURE);
26 bits_per_pixel = &(img_3d->bpp);
27 size_line = &(img_3d->line_length);
28 endian = &(img_3d->endian);
29 addr = (char *)mlx_get_data_addr(img, bits_per_pixel, size_line, endian);
30 if (addr == NULL)
31 {
32 mlx_destroy_image(mlx, img_3d->img);
33 return (EXIT_FAILURE);
34 }
35 img_3d->img = img;
36 img_3d->addr = addr;
37 return (EXIT_SUCCESS);
38}
39
40static int init_2d_image(void *mlx, t_img *img_2d)
41{
42 void *img;
43 char *addr;
44 int *bits_per_pixel;
45 int *size_line;
46 int *endian;
47
48 img = mlx_new_image(mlx, IMG_2D_WIDTH, WIN_HEIGHT);
49 if (img == NULL)
50 return (EXIT_FAILURE);
51 bits_per_pixel = &img_2d->bpp;
52 size_line = &img_2d->line_length;
53 endian = &img_2d->endian;
54 addr = mlx_get_data_addr(img, bits_per_pixel, size_line, endian);
55 if (addr == NULL)
56 {
57 mlx_destroy_image(mlx, img_2d->img);
58 return (EXIT_FAILURE);
59 }
60 img_2d->img = img;
61 img_2d->addr = addr;
62 return (EXIT_SUCCESS);
63}
64
65int init_mlx_image(t_game *game)
66{
67 if (init_3d_image(game->mlx, &game->img_3d) != EXIT_SUCCESS)
68 return (EXIT_FAILURE);
69 if (DISABLE_2D_MAP == false)
70 {
71 if (init_2d_image(game->mlx, &game->img_2d) != EXIT_SUCCESS)
72 {
73 mlx_destroy_image(game->mlx, game->img_3d.img);
74 return (EXIT_FAILURE);
75 }
76 }
77 return (EXIT_SUCCESS);
78}
main game
Definition type_cub3d.h:264
3D or 2D or Texture image
Definition type_cub3d.h:82