-
Notifications
You must be signed in to change notification settings - Fork 0
/
mlx_int.h
102 lines (84 loc) · 2.01 KB
/
mlx_int.h
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//
// mlx_int.h for minilibx
//
//
// 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);