-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
79 lines (74 loc) · 2.3 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: zhasni <zhasni@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2014/12/30 10:34:05 by zhasni #+# #+# */
/* Updated: 2015/06/04 11:41:28 by zhasni ### ########.fr */
/* */
/* ************************************************************************** */
#include "fractol.h"
void ft_init_env(t_env *env)
{
env->ratio = 1;
env->it_max = 50;
env->pos_x = 0;
env->pos_y = 0;
env->move_x = 0;
env->move_y = 0;
env->zr = -2.1;
env->zi = -1.4;
env->cr = -0.772691322542185;
env->ci = 0.124281466072787;
env->zoom = 1;
env->old_x = SCREEN_X;
env->old_y = SCREEN_Y;
env->bol = 0;
env->color = 1000;
env->stop = 0;
env->power = 2;
}
int ft_fractol(t_env *env, char *str)
{
if (ft_strcmp(str, "julia") == 0)
env->frct = 7;
else if (ft_strcmp(str, "mandel") == 0)
env->frct = 8;
else if (ft_strcmp(str, "carpet") == 0)
env->frct = 9;
else
{
ft_putstr("enter julia, mandel or carpet !\n");
return (0);
}
mlx_hook(env->win, KeyPress, KeyRelease, key_hook, env);
mlx_hook(env->win, MotionNotify, PointerMotionMask, motion_hook, env);
mlx_mouse_hook(env->win, mouse_hook, env);
mlx_expose_hook(env->win, expose_hook, env);
mlx_loop(env->mlx);
return (0);
}
int main(int ac, char **av)
{
t_env env;
if (!(env.mlx = mlx_init()))
return (1);
if (!(env.win = mlx_new_window(env.mlx, SCREEN_X, SCREEN_Y, "Fract'ol")))
return (1);
if (!(env.img = mlx_new_image(env.mlx, SCREEN_X, SCREEN_Y)))
return (-1);
if (!(env.str = mlx_get_data_addr(env.img, &(env.bpp), &(env.sline),
&(env.endian))))
return (-1);
ft_init_env(&env);
if (ac == 2)
{
env.arg = av[1];
ft_fractol(&env, av[1]);
}
else
ft_putstr("enter one argument julia, mandel or carpet !\n");
return (0);
}