aboutsummaryrefslogtreecommitdiffstats
path: root/minilibx/mlx_int.h
diff options
context:
space:
mode:
Diffstat (limited to 'minilibx/mlx_int.h')
-rw-r--r--minilibx/mlx_int.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/minilibx/mlx_int.h b/minilibx/mlx_int.h
new file mode 100644
index 0000000..a93c1c9
--- /dev/null
+++ b/minilibx/mlx_int.h
@@ -0,0 +1,102 @@
+//
+// 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);