void *ft_rc_th4(void *env) { t_ray *ray; int pix[2]; t_env *tmp; tmp = (t_env *)env; pix[1] = 3 * Y_MAX / 4; while (pix[1] < Y_MAX) { pix[0] = 0; while (pix[0] < X_MAX) { ray = (t_ray *)malloc(sizeof(t_ray)); ray->pix[1] = pix[1]; ray->pix[0] = pix[0]; ft_init_ray(ray, tmp->dt); ft_inter(ray, tmp->obj); ft_get_color(ray, tmp->obj); ft_mlx_add_col(tmp->dt, ray); pix[0] = pix[0] + 1; free(ray); } pix[1] = pix[1] + 1; } return (NULL); }
void ft_ray_cast(t_dt *dt, t_obj *obj) { t_ray *ray; int pix[2]; pix[1] = 0; ft_set_param(dt); while (pix[1] < Y_MAX) { pix[0] = 0; while (pix[0] < X_MAX) { ray = (t_ray *)malloc(sizeof(t_ray)); ray->pix[1] = pix[1]; ray->pix[0] = pix[0]; ft_init_ray(ray, dt); ft_inter(ray, obj); ft_get_color(ray, obj); ft_mlx_add_col(dt, ray); pix[0] = pix[0] + 1; free(ray); } pix[1] = pix[1] + 1; mlx_put_image_to_window(dt->conn, dt->win, dt->img, 0, 0); } }
void ft_aliase_fin(t_env *env, int ***img) { int i; int j; i = -1; while (++i < env->dt->y_max) { j = -1; while (++j < env->dt->x_max) { img[i][j][0] = img[i][j][0] / (1 + 4 * env->dt->opt_aa); img[i][j][1] = img[i][j][1] / (1 + 4 * env->dt->opt_aa); img[i][j][2] = img[i][j][2] / (1 + 4 * env->dt->opt_aa); ft_mlx_add_col(env->dt, img[i][j], j, i); free(img[i][j]); } free(img[i]); } free(img); ft_expose(env); }