/FdF

projet FdF de 42

Primary LanguageCMIT LicenseMIT

FdF

projet FdF de 42

> Notes de cours MinilibX


man /usr/share/man/man3/mlx.1

> Fonctions

> Connection a la minilibX

Include des fonctions de la librairie: #include <mlx.h>

Pour le link il faut ajouter ces flags a la compilation: -lmlx -framework OpenGL -framework AppKit

Fonction qui connecte au serveur graphique x du mac:

void	*mlx_init()

Elle renvoie un pointeur comme identifiant de connexion au serveur graphique, si echoue, renvoie un pointeur sur NULL

> Gestion des fenetres

> Creation d'une fenetre a l'ecran:

void	*mlx_new_window(void *mlx_ptr, int width, int height, char *title)

Elle renvoie un pointeur comme identifiant de la fenetre.

> Reintialisation d'une fenetre

Affichage d'un pixel dans la fenetre:

int mlx_pixel_put(void *mlx_ptr, void *win_ptr, int x, int y, int color)

> Exemple personnel

int		main(void)
{
	void	*mlx_ptr;
	void	*win_ptr;

	mlx_ptr = mlx_init();
	win_ptr = mlx_new_window(mlx_ptr, 512, 512, "titre de la fenetre");
	mlx_pixel_put(mlx_ptr, win_ptr, 128, 128, 0xFFFFFF);
}

> Gestion des evenements

Avant d'appeler mlx_loop, on appelle mlx_key_hook :

int mlx_key_hook(void *win_ptr, int (*funct_ptr)(), void *param );

En code cela donne ca

mlx_key_hook(win_ptr, deal_key, (void *)0);

on doit alors creer la fonction qui est appelee:

int deal_key(int key, void *param)
{
	ft_putchar('x');
	return (0);
}

Le parametre "void param" est a utiliser pour transmettre les variables mlx_ptr et win_ptr.

> Gestion des images

void *mlx_new_image(void *mlx_ptr, int width, int height);

char *mlx_get_data_addr(void *img_ptr, int *bits_per_pixel, int *size_line, int *endian);

int mlx_put_image_to_window(void *mlx_ptr, void *win_ptr, void *img_ptr, int x, int y);

unsigned int mlx_get_color_value(void *mlx_ptr, int color);

void *mlx_xpm_to_image(void *mlx_ptr, char **xpm_data, int *width, int *height);

void *mlx_xpm_file_to_image(void *mlx_ptr, char *filename, int *width, int *height);

int mlx_destroy_image(void *mlx_ptr, void *img_ptr);