示例#1
0
static t_fdf_window		*fdf_get_window(int argc, int *args,
		char **argv, int cnt)
{
	t_fdf_window		*wptr;
	char				*name;
	int					fd;

	if (!(fd = open(argv[*args], O_RDONLY)) > 0)
	{
		ft_putstr("Error: Invalid file name. File: ");
		ft_putendl(argv[*args]);
		return (0);
	}
	name = argv[(*args)++];
	if (!(wptr = malloc(sizeof(t_fdf_window))))
		fdf_exit(-50);
	fdf_get_screen_size(argc, args, argv, wptr);
	wptr->cameras = fdf_init_cameras(wptr);
	wptr->fd = fd;
	wptr->wd = cnt;
	wptr->num_cameras = 3;
	wptr->name = name;
	fdf_set_gradients(argc, args, argv, wptr);
	return (wptr);
}
示例#2
0
t_fdf_config			*fdf_get_config(int argc, char **argv)
{
	static t_fdf_config	config;
	int					args;
	int					cnt;

	if ((args = 1) && argc == 0 && argv == 0)
		return (&config);
	config.current = 0;
	if (!(config.windows = malloc(sizeof(t_fdf_window *)
					* MLX_MAX_WINDOW_COUNT)))
		fdf_exit(-50);
	cnt = 0;
	while (args < argc && cnt < MLX_MAX_WINDOW_COUNT)
	{
		if (!(config.windows[cnt] = fdf_get_window(argc, &args, argv, cnt)))
			args++;
		else
			cnt++;
	}
	if ((config.window_count = cnt) == MLX_MAX_WINDOW_COUNT)
	{
		ft_putstr("Error: Too many windows, opening ");
		ft_putnbr(MLX_MAX_WINDOW_COUNT);
		ft_putchar('\n');
	}
	return (&config);
}
示例#3
0
void		fdf_read_files(int ac, char **av)
{
	t_fdf_config	*config;
	int				i;
	t_list			*list;
	t_fdf_window	*window;

	config = fdf_get_config(ac, av);
	ft_putendl("Exited config");
	ft_putnbr(config->window_count);
	i = 0;
	while (i < config->window_count)
	{
		config->current = i;
		window = config->windows[i];
		if (!(list = fdf_read_file(window->fd)))
			fdf_exit(-50);
		fdf_add_vertical_lines(list);
		fdf_load_frame(list, window);
		mlx_key_hook(mlx_get_window(i)->window, fdf_key_hook,
				window);
		mlx_expose_hook(mlx_get_window(i)->window, fdf_expose_hook,
				window);
		i++;
	}
}
示例#4
0
文件: fdf_error.c 项目: John-Goss/FDF
void	fdf_malloc_error(void)
{
	ft_putstr_fd("malloc error\n", 2);
	fdf_exit();
}
示例#5
0
文件: fdf_error.c 项目: John-Goss/FDF
void	fdf_arg_error(void)
{
	ft_putstr_fd("Un seul argument pris en compte.\n", 2);
	fdf_exit();
}
示例#6
0
文件: fdf_error.c 项目: John-Goss/FDF
void	fdf_map_error(void)
{
	ft_putstr_fd("map error\n", 2);
	fdf_exit();
}