/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_draw_scene.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: rbousset +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/14 17:28:46 by rbousset #+# #+# */ /* Updated: 2020/02/14 17:28:46 by rbousset ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include #include static int8_t ft_put_stage(t_cub *clist) { uint8_t len; char *str; uint32_t x; uint32_t y; x = 15; y = clist->wlist.y_size - (clist->mlist.map_h * clist->mlist.scale) - 20; len = 6 + ft_uintlen(clist->currlvl); if (!(str = (char*)malloc((len + 1) * sizeof(char)))) return (-1); ft_sprintf(str, "Stage %hd", clist->currlvl); mlx_string_put(clist->wlist.wlx, clist->wlist.winptr, x, y, 0x00ff0000, str); ft_memdel((void**)&str); return (0); } void ft_draw_scene(t_cub *clist) { clist->img.img = mlx_new_image(clist->wlist.wlx, clist->wlist.x_size, clist->wlist.y_size); clist->img.ptr = mlx_get_data_addr(clist->img.img, &clist->img.bpp, &clist->img.sizeline, &clist->img.endian); ft_castray(clist); if (clist->ishud) { ft_draw_hud(clist); } mlx_put_image_to_window(clist->wlist.wlx, clist->wlist.winptr, clist->img.img, 0, 0); if (clist->ishud && clist->mlist.isnlvl) { if (ft_put_stage(clist) < 0) { ft_error(FT_RET_ALLOC_ERR, FT_ERR_ALLOCATE, clist); } } mlx_destroy_image(clist->wlist.wlx, clist->img.img); } void ft_draw_scene_bmp(t_cub *clist) { clist->img.img = mlx_new_image(clist->wlist.wlx, clist->wlist.x_size, clist->wlist.y_size); clist->img.ptr = mlx_get_data_addr(clist->img.img, &clist->img.bpp, &clist->img.sizeline, &clist->img.endian); ft_castray(clist); if (ft_save_to_bmp(clist) < 0) ft_error(FT_RET_BMP_ERR, FT_ERR_WR_BMP, clist); mlx_destroy_image(clist->wlist.wlx, clist->img.img); }