projet FdF de 42
man /usr/share/man/man3/mlx.1
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
void *mlx_new_window(void *mlx_ptr, int width, int height, char *title)
Elle renvoie un pointeur comme identifiant de la fenetre.
Affichage d'un pixel dans la fenetre:
int mlx_pixel_put(void *mlx_ptr, void *win_ptr, int x, int y, int color)
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);
}
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.
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);