51 lines
1.7 KiB
C
51 lines
1.7 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* utils.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2023/05/11 14:19:16 by erey-bet #+# #+# */
|
|
/* Updated: 2023/06/16 17:45:58 by erey-bet ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "game.h"
|
|
|
|
double ft_abs(double nb)
|
|
{
|
|
if (nb < 0)
|
|
return (-nb);
|
|
return (nb);
|
|
}
|
|
|
|
unsigned int get_rgba(int r, int g, int b, int a)
|
|
{
|
|
return (r << 24 | g << 16 | b << 8 | a);
|
|
}
|
|
|
|
static uint32_t switch_color_bytes(uint32_t color)
|
|
{
|
|
return (((color & 0xff) << 24) | (((color >> 8) & 0xff) << 16)
|
|
| (((color >> 16) & 0xff) << 8) | color >> 24);
|
|
}
|
|
|
|
uint32_t get_pixel_color(mlx_texture_t *texture, uint32_t x, uint32_t y)
|
|
{
|
|
return (switch_color_bytes(*(uint32_t *)(texture->pixels
|
|
+ (y * texture->width + x) * texture->bytes_per_pixel)));
|
|
}
|
|
|
|
int get_texture_side(t_dda *dda)
|
|
{
|
|
if (dda->side == 0 && dda->step_x < 0)
|
|
return (3);
|
|
if (dda->side == 0 && dda->step_x > 0)
|
|
return (1);
|
|
if (dda->side == 1 && dda->step_y < 0)
|
|
return (2);
|
|
if (dda->side == 1 && dda->step_y > 0)
|
|
return (0);
|
|
return (0);
|
|
}
|