void ft_ray_cast_threads(t_env *env) { int ij[2]; ft_set_param(env->dt); if (env->dt->th_nb <= 0) env->dt->th_nb = 1; if (env->dt->th_nb == 1) ft_ray_cast(env); else { ft_threads(env); if (env->dt->opt_f == 0 && env->dt->opt_aa) ft_antialiase(env); else { ij[0] = -1; while (++ij[0] < env->dt->y_max) { ij[1] = -1; while (++ij[1] < env->dt->x_max) free(env->dt->img_i[ij[0]][ij[1]]); free(env->dt->img_i[ij[0]]); } free(env->dt->img_i); } } }
int ft_cast0_y(int *i, double *p1, double *k, t_env *env) { if (i[1] > i[3]) p1[2] = i[1] * BLOCK_SIZE; else p1[2] = i[3] * BLOCK_SIZE; p1[3] = (p1[2] - k[1]) / k[0]; if (ft_ray_cast(i, &p1[2], env)) return (1); else ft_floor_ceiling(i, p1, env); return (0); }