void display_loading(t_env *e, int u, int v) { static int prev = 0; int percent; float progress; float goal; progress = u * (v + 1); goal = e->win.w * e->win.h; percent = progress / goal * 100; if (percent != prev) { if (e->scene.resync) { mlx_put_image_to_window(e->mlx, e->win.adr, e->cam->img.adr, 0, 0); mlx_do_sync(e->mlx); } if (e->scene.percent) { system("clear"); ft_printf("%d%%\n", percent); } prev = percent; } }
void draw_grid(t_env *e, t_point **grid, int i, int j) { grid = map_to_point(e); grid = (e->proj == 0) ? isometric(grid, e) : parallel(grid, e); i = 0; while ((i + 1) < e->map[0][0] - 1) { j = 0; while ((j + 1) < e->map[i + 1][0] - 1) { (grid[i][j + 1].x) ? putl(e, grid[i][j], grid[i][j + 1]) : 1; (grid[i + 1][j].x) ? putl(e, grid[i][j], grid[i + 1][j]) : 1; if (j + 1 == e->map[i + 1][0] - 2 && e->map[i + 1][0] <= e->map[i + 2][0]) putl(e, grid[i][j + 1], grid[i + 1][j + 1]); if (i + 1 == e->map[0][0] - 2) putl(e, grid[i + 1][j], grid[i + 1][j + 1]); j++; } i++; } mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0); print_state(e); mlx_do_sync(e->mlx); }
int expose_hook(t_env *e) { if (!e->img_ptr) create_image(e); cast(e, e->begin_list); mlx_do_sync(e->mlx); mlx_put_image_to_window(e->mlx, e->win, e->img_ptr, 0, 0); ft_bzero(e->img, (WIN_X * e->bpp / 8 + WIN_Y * e->sl)); return (1); }
int expose_hook(t_env *env) { if (env->image == NULL) create_image(env); ft_draw_image(env); mlx_put_image_to_window(env->mlx, env->win ,env->image, 0, 0); if (env->ui == 1) { display_key(env); ft_display_variable(env); } mlx_do_sync(env->mlx); ft_clean(env); return (0); }
void draw(t_env *e) { t_pt start; ft_bzero(e->data, e->size_line * 900); if (e->fract_type == 2) { start.x = 970 - 100 * e->decalx; start.y = 540 - 100 * e->decaly; draw_tree(e, start, -(M_PI / 2), e->depth); draw_tree(e, start, (M_PI / 2), e->depth); } else loop(e); control_bar(e); mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0); btext(e); mlx_do_sync(e->mlx); }
int main(int argc, char **argv) { t_env *env; if (argc > 1 && argc <= 3) { env = (t_env *)malloc(sizeof(t_env)); if (ft_strcmp(argv[1], "/dev/random") == 0) return (0); read_that_file(argv[1], env); if (init_struct(env) == 0 || env->map == NULL ) { ft_putstr("d1\n"); return (0); } if (argc == 3) check_argv(argv[2], env); mlx_key_hook(env->win, ft_key_hook, env); mlx_expose_hook(env->win, expose_hook, env); mlx_do_sync(env->mlx); mlx_loop(env->mlx); } return (0); }
static int loop_hook(t_env *e) { mlx_put_image_to_window(e->mlx, e->win, e->img, 0, 0); mlx_do_sync(e->mlx); return (1); }