You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.0 KiB
102 lines
2.0 KiB
//
|
|
// mlx_int.h for minilibx
|
|
//
|
|
// ol@staff.42.fr
|
|
//
|
|
// include opengl needed before mlx_int.h
|
|
//
|
|
|
|
|
|
#define MAX_EVENT 32
|
|
#define MAX_PIXEL_NB 200000
|
|
#define UNIQ_BPP 4
|
|
|
|
#define FONT_WIDTH 10
|
|
#define FONT_HEIGHT 20
|
|
|
|
|
|
typedef int (*func_t)();
|
|
|
|
/* structs */
|
|
|
|
typedef struct glsl_info_s
|
|
{
|
|
GLuint pixel_vshader;
|
|
GLuint pixel_fshader;
|
|
GLuint pixel_program;
|
|
GLint loc_pixel_position;
|
|
GLint loc_pixel_texture;
|
|
GLint loc_pixel_winhalfsize;
|
|
|
|
GLuint image_vshader;
|
|
GLuint image_fshader;
|
|
GLuint image_program;
|
|
GLint loc_image_position;
|
|
GLint loc_image_winhalfsize;
|
|
GLint loc_image_texture;
|
|
GLint loc_image_pos;
|
|
GLint loc_image_size;
|
|
|
|
GLuint font_vshader;
|
|
GLuint font_fshader;
|
|
GLuint font_program;
|
|
GLint loc_font_position;
|
|
GLint loc_font_winhalfsize;
|
|
GLint loc_font_texture;
|
|
GLint loc_font_color;
|
|
GLint loc_font_posinwin;
|
|
GLint loc_font_posinatlas;
|
|
GLint loc_font_atlassize;
|
|
} glsl_info_t;
|
|
|
|
|
|
typedef struct mlx_img_list_s
|
|
{
|
|
int width;
|
|
int height;
|
|
char *buffer;
|
|
GLfloat vertexes[8];
|
|
struct mlx_img_list_s *next;
|
|
} mlx_img_list_t;
|
|
|
|
|
|
typedef struct mlx_img_ctx_s
|
|
{
|
|
GLuint texture;
|
|
GLuint vbuffer;
|
|
mlx_img_list_t *img;
|
|
struct mlx_img_ctx_s *next;
|
|
} mlx_img_ctx_t;
|
|
|
|
typedef struct mlx_win_list_s
|
|
{
|
|
void *winid;
|
|
mlx_img_ctx_t *img_list;
|
|
int nb_flush;
|
|
int pixmgt;
|
|
struct mlx_win_list_s *next;
|
|
} mlx_win_list_t;
|
|
|
|
|
|
typedef struct mlx_ptr_s
|
|
{
|
|
void *appid;
|
|
mlx_win_list_t *win_list;
|
|
mlx_img_list_t *img_list;
|
|
void (*loop_hook)(void *);
|
|
void *loop_hook_data;
|
|
void *loop_timer;
|
|
mlx_img_list_t *font;
|
|
int main_loop_active;
|
|
} mlx_ptr_t;
|
|
|
|
// proto
|
|
|
|
int mlx_shaders(glsl_info_t *glsl);
|
|
char **mlx_int_str_to_wordtab(char *str);
|
|
int mlx_int_str_str(char *str,char *find,int len);
|
|
int mlx_int_str_str_cote(char *str,char *find,int len);
|
|
int mlx_destroy_image(mlx_ptr_t *mlx_ptr, mlx_img_list_t *img_ptr);
|
|
void *mlx_new_image();
|
|
void *mlx_xpm_to_image(mlx_ptr_t *xvar,char **xpm_data,int *width,int *height);
|
|
int mlx_do_sync(mlx_ptr_t *mlx_ptr);
|
|
|