dev: clean xpm files from the original minilibx *
- rename the source files of the original minilibx to xpm_*.* - make the changes between the original files as minimal as possible
This commit is contained in:
parent
6592ec43fd
commit
1c023df1ff
4 changed files with 113 additions and 31 deletions
|
@ -17,7 +17,7 @@
|
||||||
* (at https://github.com/frzysk/mlx3ds).
|
* (at https://github.com/frzysk/mlx3ds).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: from mlx xpm: clean
|
|
||||||
|
|
||||||
#ifndef MLX_INT_H
|
#ifndef MLX_INT_H
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
# define ERR_NO_TRUECOLOR "MinilibX Error : No TrueColor Visual available.\n"
|
# define ERR_NO_TRUECOLOR "MinilibX Error : No TrueColor Visual available.\n"
|
||||||
# define WARN_SHM_ATTACH "MinilibX Warning : X server can't attach shared memory.\n"
|
# define WARN_SHM_ATTACH "MinilibX Warning : X server can't attach shared memory.\n"
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
typedef struct s_xpm_col
|
typedef struct s_xpm_col
|
||||||
{
|
{
|
||||||
int name;
|
int name;
|
||||||
|
@ -63,6 +63,59 @@ typedef struct s_event_list
|
||||||
void *param;
|
void *param;
|
||||||
} t_event_list;
|
} t_event_list;
|
||||||
|
|
||||||
|
|
||||||
|
// typedef struct s_win_list
|
||||||
|
// {
|
||||||
|
// Window window;
|
||||||
|
// GC gc;
|
||||||
|
// struct s_win_list *next;
|
||||||
|
// int (*mouse_hook)();
|
||||||
|
// int (*key_hook)();
|
||||||
|
// int (*expose_hook)();
|
||||||
|
// void *mouse_param;
|
||||||
|
// void *key_param;
|
||||||
|
// void *expose_param;
|
||||||
|
// t_event_list hooks[MLX_MAX_EVENT];
|
||||||
|
// } t_win_list;
|
||||||
|
|
||||||
|
|
||||||
|
// typedef struct s_img
|
||||||
|
// {
|
||||||
|
// XImage *image;
|
||||||
|
// Pixmap pix;
|
||||||
|
// GC gc;
|
||||||
|
// int size_line;
|
||||||
|
// int bpp;
|
||||||
|
// int width;
|
||||||
|
// int height;
|
||||||
|
// int type;
|
||||||
|
// int format;
|
||||||
|
// char *data;
|
||||||
|
// XShmSegmentInfo shm;
|
||||||
|
// } t_img;
|
||||||
|
|
||||||
|
// typedef struct s_xvar
|
||||||
|
// {
|
||||||
|
// Display *display;
|
||||||
|
// Window root;
|
||||||
|
// int screen;
|
||||||
|
// int depth;
|
||||||
|
// Visual *visual;
|
||||||
|
// Colormap cmap;
|
||||||
|
// int private_cmap;
|
||||||
|
// t_win_list *win_list;
|
||||||
|
// int (*loop_hook)();
|
||||||
|
// void *loop_param;
|
||||||
|
// int use_xshm;
|
||||||
|
// int pshm_format;
|
||||||
|
// int do_flush;
|
||||||
|
// int decrgb[6];
|
||||||
|
// Atom wm_delete_window;
|
||||||
|
// Atom wm_protocols;
|
||||||
|
// int end_loop;
|
||||||
|
// } t_xvar;
|
||||||
|
|
||||||
|
|
||||||
int mlx_int_do_nothing();
|
int mlx_int_do_nothing();
|
||||||
int mlx_get_color_value();
|
int mlx_get_color_value();
|
||||||
int mlx_int_get_good_color();
|
int mlx_int_get_good_color();
|
||||||
|
@ -72,13 +125,12 @@ int mlx_int_wait_first_expose();
|
||||||
int mlx_int_rgb_conversion();
|
int mlx_int_rgb_conversion();
|
||||||
int mlx_int_deal_shm();
|
int mlx_int_deal_shm();
|
||||||
void *mlx_int_new_xshm_image();
|
void *mlx_int_new_xshm_image();
|
||||||
// [USED] [FULL]...
|
|
||||||
char **mlx_int_str_to_wordtab();
|
char **mlx_int_str_to_wordtab();
|
||||||
void *mlx_new_image();
|
void *mlx_new_image();
|
||||||
int shm_att_pb();
|
int shm_att_pb();
|
||||||
// [USED] [FULL]...
|
// int mlx_int_get_visual(t_xvar *xvar);
|
||||||
|
// int mlx_int_set_win_event_mask(t_xvar *xvar);
|
||||||
int mlx_int_str_str_cote(char *str,char *find,int len);
|
int mlx_int_str_str_cote(char *str,char *find,int len);
|
||||||
// [USED] [FULL]...
|
|
||||||
int mlx_int_str_str(char *str,char *find,int len);
|
int mlx_int_str_str(char *str,char *find,int len);
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@
|
||||||
* (at https://github.com/frzysk/mlx3ds).
|
* (at https://github.com/frzysk/mlx3ds).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: from mlx xpm: clean
|
#include "xpm_mlx_int.h"
|
||||||
|
|
||||||
#include "mlx_int.h"
|
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
int mlx_int_str_str(char *str,char *find,int len)
|
int mlx_int_str_str(char *str,char *find,int len)
|
||||||
{
|
{
|
||||||
int len_f;
|
int len_f;
|
||||||
|
@ -42,7 +40,8 @@ int mlx_int_str_str(char *str,char *find,int len)
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
|
|
||||||
int mlx_int_str_str_cote(char *str,char *find,int len)
|
int mlx_int_str_str_cote(char *str,char *find,int len)
|
||||||
{
|
{
|
||||||
int len_f;
|
int len_f;
|
||||||
|
@ -74,7 +73,7 @@ int mlx_int_str_str_cote(char *str,char *find,int len)
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
char **mlx_int_str_to_wordtab(char *str)
|
char **mlx_int_str_to_wordtab(char *str)
|
||||||
{
|
{
|
||||||
char **tab;
|
char **tab;
|
|
@ -8,9 +8,7 @@
|
||||||
* (at https://github.com/frzysk/mlx3ds).
|
* (at https://github.com/frzysk/mlx3ds).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: from mlx xpm: clean
|
#include "xpm_mlx_int.h"
|
||||||
|
|
||||||
#include "mlx_int.h"
|
|
||||||
|
|
||||||
struct s_col_name mlx_col_name[] =
|
struct s_col_name mlx_col_name[] =
|
||||||
{
|
{
|
|
@ -8,14 +8,13 @@
|
||||||
** Last update Sat Oct 1 14:56:13 2005 Olivier Crouzet
|
** Last update Sat Oct 1 14:56:13 2005 Olivier Crouzet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modified by Zy to work with the MinilibX For 3DS project
|
* Modified by Zy to work with the MinilibX For 3DS project
|
||||||
* (at https://github.com/frzysk/mlx3ds).
|
* (at https://github.com/frzysk/mlx3ds).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: from mlx xpm: clean
|
#include "xpm_mlx_int.h"
|
||||||
|
|
||||||
#include "mlx_int.h"
|
|
||||||
#include "mlx.h"
|
#include "mlx.h"
|
||||||
#include "mlx_internal.h"
|
#include "mlx_internal.h"
|
||||||
#include "mlx3ds.h"
|
#include "mlx3ds.h"
|
||||||
|
@ -28,7 +27,9 @@ extern struct s_col_name mlx_col_name[];
|
||||||
if (img) free(img); \
|
if (img) free(img); \
|
||||||
return ((void *)0);}
|
return ((void *)0);}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
|
|
||||||
|
|
||||||
char *mlx_int_get_line(char *ptr,int *pos,int size)
|
char *mlx_int_get_line(char *ptr,int *pos,int size)
|
||||||
{
|
{
|
||||||
int pos2;
|
int pos2;
|
||||||
|
@ -46,7 +47,7 @@ char *mlx_int_get_line(char *ptr,int *pos,int size)
|
||||||
return (ptr+pos4);
|
return (ptr+pos4);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
unsigned int strlcpy_is_not_posix(char *dest, char *src, unsigned int size)
|
unsigned int strlcpy_is_not_posix(char *dest, char *src, unsigned int size)
|
||||||
{
|
{
|
||||||
unsigned count;
|
unsigned count;
|
||||||
|
@ -65,7 +66,6 @@ unsigned int strlcpy_is_not_posix(char *dest, char *src, unsigned int size)
|
||||||
return (count);
|
return (count);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
char *mlx_int_static_line(char **xpm_data,int *pos,int size)
|
char *mlx_int_static_line(char **xpm_data,int *pos,int size)
|
||||||
{
|
{
|
||||||
static char *copy = 0;
|
static char *copy = 0;
|
||||||
|
@ -88,7 +88,7 @@ char *mlx_int_static_line(char **xpm_data,int *pos,int size)
|
||||||
return (copy);
|
return (copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
int mlx_int_get_col_name(char *str,int size)
|
int mlx_int_get_col_name(char *str,int size)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
|
@ -100,7 +100,6 @@ int mlx_int_get_col_name(char *str,int size)
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
int mlx_int_get_text_rgb(char *name, char *end)
|
int mlx_int_get_text_rgb(char *name, char *end)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -123,7 +122,7 @@ int mlx_int_get_text_rgb(char *name, char *end)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
int mlx_int_xpm_set_pixel(t_internal_image *img, u8 *data, int opp, int col, int x)
|
int mlx_int_xpm_set_pixel(t_internal_image *img, u8 *data, int opp, int col, int x)
|
||||||
{
|
{
|
||||||
int dec;
|
int dec;
|
||||||
|
@ -142,7 +141,7 @@ int mlx_int_xpm_set_pixel(t_internal_image *img, u8 *data, int opp, int col, int
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
{
|
{
|
||||||
int pos;
|
int pos;
|
||||||
|
@ -172,9 +171,8 @@ void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
if (!(line = f(info,&pos,info_size)) ||
|
if (!(line = f(info,&pos,info_size)) ||
|
||||||
!(tab = mlx_int_str_to_wordtab(line)) || !(width = atoi(tab[0])) ||
|
!(tab = mlx_int_str_to_wordtab(line)) || !(width = atoi(tab[0])) ||
|
||||||
!(height = atoi(tab[1])) || !(nc = atoi(tab[2])) ||
|
!(height = atoi(tab[1])) || !(nc = atoi(tab[2])) ||
|
||||||
!(cpp = atoi(tab[3])))
|
!(cpp = atoi(tab[3])) )
|
||||||
RETURN;
|
RETURN;
|
||||||
|
|
||||||
free(tab);
|
free(tab);
|
||||||
tab = 0;
|
tab = 0;
|
||||||
|
|
||||||
|
@ -202,18 +200,29 @@ void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
if (!tab[j])
|
if (!tab[j])
|
||||||
RETURN;
|
RETURN;
|
||||||
rgb_col = mlx_int_get_text_rgb(tab[j], tab[j+1]);
|
rgb_col = mlx_int_get_text_rgb(tab[j], tab[j+1]);
|
||||||
|
/*
|
||||||
|
if ((rgb_col = mlx_int_get_text_rgb(tab[j], tab[j+1]))==-1)
|
||||||
|
{
|
||||||
|
if (!(clip_data = malloc(4*width*height)) || ok, nice size ..
|
||||||
|
!(clip_img = XCreateImage(xvar->display, xvar->visual,
|
||||||
|
1, XYPixmap, 0, clip_data,
|
||||||
|
width, height, 8, (width+7)/8)) )
|
||||||
|
RETURN;
|
||||||
|
memset(clip_data, 0xFF, 4*width*height);
|
||||||
|
}
|
||||||
|
*/
|
||||||
if (method)
|
if (method)
|
||||||
colors_direct[mlx_int_get_col_name(line,cpp)] = rgb_col;
|
colors_direct[mlx_int_get_col_name(line,cpp)] = rgb_col;
|
||||||
|
// rgb_col>=0?mlx_get_color_value(xvar, rgb_col):rgb_col;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
colors[i].name = mlx_int_get_col_name(line,cpp);
|
colors[i].name = mlx_int_get_col_name(line,cpp);
|
||||||
colors[i].col = rgb_col;
|
colors[i].col = rgb_col; //rgb_col>=0?mlx_get_color_value(xvar,rgb_col):rgb_col;
|
||||||
}
|
}
|
||||||
free(tab);
|
free(tab);
|
||||||
tab = (void *)0;
|
tab = (void *)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!(img = mlx_new_image(mlx_ptr,width,height)))
|
if (!(img = mlx_new_image(mlx_ptr,width,height)))
|
||||||
RETURN;
|
RETURN;
|
||||||
|
|
||||||
|
@ -240,6 +249,13 @@ void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
j = 0;
|
j = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
if (col==-1)
|
||||||
|
XPutPixel(clip_img, x, height-1-i, 0);
|
||||||
|
else
|
||||||
|
mlx_int_xpm_set_pixel(img, data, opp, col, x);
|
||||||
|
x ++;
|
||||||
|
*/
|
||||||
if (col==-1)
|
if (col==-1)
|
||||||
col = 0xFF000000;
|
col = 0xFF000000;
|
||||||
mlx_int_xpm_set_pixel(img, data, 3, col, x);
|
mlx_int_xpm_set_pixel(img, data, 3, col, x);
|
||||||
|
@ -247,7 +263,25 @@ void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
}
|
}
|
||||||
data += img->width * 3;
|
data += img->width * 3;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
if (clip_data)
|
||||||
|
{
|
||||||
|
if (!(clip_pix = XCreatePixmap(xvar->display, xvar->root,
|
||||||
|
width, height, 1)) )
|
||||||
|
RETURN;
|
||||||
|
img->gc = XCreateGC(xvar->display, clip_pix, 0, &xgcv);
|
||||||
|
XPutImage(xvar->display, clip_pix, img->gc, clip_img,
|
||||||
|
0, 0, 0, 0, width, height);
|
||||||
|
XFreeGC(xvar->display, img->gc);
|
||||||
|
xgcv.clip_mask = clip_pix;
|
||||||
|
xgcv.function = GXcopy;
|
||||||
|
xgcv.plane_mask = AllPlanes;
|
||||||
|
img->gc = XCreateGC(xvar->display, xvar->root, GCClipMask|GCFunction|
|
||||||
|
GCPlaneMask, &xgcv);
|
||||||
|
XSync(xvar->display, False);
|
||||||
|
XDestroyImage(clip_img);
|
||||||
|
}
|
||||||
|
*/
|
||||||
if (colors)
|
if (colors)
|
||||||
free(colors);
|
free(colors);
|
||||||
if (colors_direct)
|
if (colors_direct)
|
||||||
|
@ -255,7 +289,7 @@ void *mlx_int_parse_xpm(t_mlx mlx_ptr,void *info,int info_size,char *(*f)())
|
||||||
return (img);
|
return (img);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
int mlx_int_file_get_rid_comment(char *ptr, int size)
|
int mlx_int_file_get_rid_comment(char *ptr, int size)
|
||||||
{
|
{
|
||||||
int com_begin;
|
int com_begin;
|
||||||
|
@ -274,7 +308,7 @@ int mlx_int_file_get_rid_comment(char *ptr, int size)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED]
|
|
||||||
t_image mlx_xpm_file_to_image(t_mlx xvar, const char *file,int *width,int *height)
|
t_image mlx_xpm_file_to_image(t_mlx xvar, const char *file,int *width,int *height)
|
||||||
{
|
{
|
||||||
const t_embeddedasset *asset;
|
const t_embeddedasset *asset;
|
||||||
|
@ -304,7 +338,6 @@ t_image mlx_xpm_file_to_image(t_mlx xvar, const char *file,int *width,int *heigh
|
||||||
return (img);
|
return (img);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [USED] [FULL]
|
|
||||||
t_image mlx_xpm_to_image(t_mlx mlx_ptr, const char **xpm_data,int *width,int *height)
|
t_image mlx_xpm_to_image(t_mlx mlx_ptr, const char **xpm_data,int *width,int *height)
|
||||||
{
|
{
|
||||||
t_internal_image *img;
|
t_internal_image *img;
|
Loading…
Add table
Reference in a new issue