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.
236 lines
7.0 KiB
236 lines
7.0 KiB
4 years ago
|
#ifndef _GDK_IMLIB_PRIVATE_H
|
||
|
#define _GDK_IMLIB_PRIVATE_H
|
||
|
|
||
|
#ifndef CONVERT_PATH
|
||
|
#define CONVERT_PATH "/usr/local/bin"
|
||
|
#endif
|
||
|
|
||
|
#ifndef NETPBM_PATH
|
||
|
#define NETPBM_PATH "/usr/local/bin"
|
||
|
#endif
|
||
|
|
||
|
#ifndef CJPEG_PROG
|
||
|
#define CJPEG_PROG "/usr/bin/cjpeg"
|
||
|
#endif
|
||
|
|
||
|
#ifndef DJPEG_PROG
|
||
|
#define DJPEG_PROG "/usr/local/bin/djpeg"
|
||
|
#endif
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <unistd.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <math.h>
|
||
|
#include <ctype.h>
|
||
|
#include <time.h>
|
||
|
#include <sys/types.h>
|
||
|
#include <netinet/in.h>
|
||
|
#ifdef HAVE_IPC_H
|
||
|
#include <sys/ipc.h>
|
||
|
#endif
|
||
|
#ifdef HAVE_SHM_H
|
||
|
#include <sys/shm.h>
|
||
|
#endif
|
||
|
#include <sys/time.h>
|
||
|
|
||
|
#ifdef _HAVE_STRING_H
|
||
|
#include <string.h>
|
||
|
#elif _HAVE_STRINGS_H
|
||
|
#include <strings.h>
|
||
|
#endif
|
||
|
|
||
|
#include <X11/Xlib.h>
|
||
|
#include <X11/Xutil.h>
|
||
|
#include <X11/Xatom.h>
|
||
|
#include <X11/Xos.h>
|
||
|
#ifdef HAVE_XSHM_H
|
||
|
#include <X11/extensions/XShm.h>
|
||
|
#endif
|
||
|
#include <X11/extensions/shape.h>
|
||
|
#include <X11/cursorfont.h>
|
||
|
#include <gdk/gdkprivate.h>
|
||
|
#include <gdk/gdkx.h>
|
||
|
|
||
|
#define BYTE_ORD_24_RGB 0
|
||
|
#define BYTE_ORD_24_RBG 1
|
||
|
#define BYTE_ORD_24_BRG 2
|
||
|
#define BYTE_ORD_24_BGR 3
|
||
|
#define BYTE_ORD_24_GRB 4
|
||
|
#define BYTE_ORD_24_GBR 5
|
||
|
|
||
|
struct image_cache
|
||
|
{
|
||
|
gchar *file;
|
||
|
GdkImlibImage *im;
|
||
|
gint refnum;
|
||
|
gchar dirty;
|
||
|
struct image_cache *prev;
|
||
|
struct image_cache *next;
|
||
|
};
|
||
|
|
||
|
struct pixmap_cache
|
||
|
{
|
||
|
GdkImlibImage *im;
|
||
|
gchar *file;
|
||
|
gchar dirty;
|
||
|
gint width, height;
|
||
|
GdkPixmap *pmap;
|
||
|
GdkBitmap *shape_mask;
|
||
|
XImage *xim, *sxim;
|
||
|
gint refnum;
|
||
|
struct pixmap_cache *prev;
|
||
|
struct pixmap_cache *next;
|
||
|
};
|
||
|
|
||
|
typedef struct _xdata
|
||
|
{
|
||
|
Display *disp;
|
||
|
gint screen;
|
||
|
Window root;
|
||
|
Visual *visual;
|
||
|
gint depth;
|
||
|
gint render_depth;
|
||
|
Colormap root_cmap;
|
||
|
gchar shm;
|
||
|
gchar shmp;
|
||
|
gint shm_event;
|
||
|
XImage *last_xim;
|
||
|
XImage *last_sxim;
|
||
|
Window base_window;
|
||
|
GdkWindow *gdk_win;
|
||
|
GdkColormap *gdk_cmap;
|
||
|
gint byte_order, bit_order;
|
||
|
#ifdef HAVE_SHM
|
||
|
XShmSegmentInfo last_shminfo;
|
||
|
XShmSegmentInfo last_sshminfo;
|
||
|
#endif
|
||
|
}
|
||
|
Xdata;
|
||
|
|
||
|
typedef struct _imlibdata
|
||
|
{
|
||
|
gint num_colors;
|
||
|
GdkImlibColor *palette;
|
||
|
GdkImlibColor *palette_orig;
|
||
|
unsigned char *fast_rgb;
|
||
|
gint *fast_err;
|
||
|
gint *fast_erg;
|
||
|
gint *fast_erb;
|
||
|
gint render_type;
|
||
|
gint max_shm;
|
||
|
gint byte_order;
|
||
|
struct _cache
|
||
|
{
|
||
|
gchar on_image;
|
||
|
gint size_image;
|
||
|
gint num_image;
|
||
|
gint used_image;
|
||
|
struct image_cache *image;
|
||
|
gchar on_pixmap;
|
||
|
gint size_pixmap;
|
||
|
gint num_pixmap;
|
||
|
gint used_pixmap;
|
||
|
struct pixmap_cache *pixmap;
|
||
|
}
|
||
|
cache;
|
||
|
gchar fastrend;
|
||
|
gchar hiq;
|
||
|
GdkImlibColorModifier mod, rmod, gmod, bmod;
|
||
|
unsigned char rmap[256], gmap[256], bmap[256];
|
||
|
gchar fallback;
|
||
|
gchar ordered_dither;
|
||
|
Xdata x;
|
||
|
}
|
||
|
ImlibData;
|
||
|
|
||
|
extern ImlibData *_gdk_imlib_data;
|
||
|
|
||
|
gint _gdk_imlib_index_best_color_match(gint * r, gint * g, gint * b);
|
||
|
void gdk_imlib_load_default_colors__private (void);
|
||
|
|
||
|
void _gdk_imlib_dirty_pixmaps(GdkImlibImage * im);
|
||
|
void _gdk_imlib_dirty_images(GdkImlibImage * im);
|
||
|
void _gdk_imlib_find_pixmap(GdkImlibImage * im, int width, int height, GdkPixmap ** pmap, GdkBitmap ** mask);
|
||
|
GdkImlibImage *_gdk_imlib_find_image(char *file);
|
||
|
void _gdk_imlib_free_pixmappmap(GdkPixmap * pmap);
|
||
|
void _gdk_imlib_free_image(GdkImlibImage * im);
|
||
|
void _gdk_imlib_flush_image(GdkImlibImage * im);
|
||
|
void _gdk_imlib_add_image(GdkImlibImage * im, char *file);
|
||
|
void _gdk_imlib_add_pixmap(GdkImlibImage * im, int width, int height, XImage * xim, XImage * sxim);
|
||
|
void _gdk_imlib_clean_caches(void);
|
||
|
void _gdk_imlib_nullify_image(GdkImlibImage * im);
|
||
|
|
||
|
/* char *g_SplitID(char *file); */
|
||
|
char *_gdk_imlib_GetExtension(char *file);
|
||
|
|
||
|
int _gdk_imlib_ispnm(FILE *f);
|
||
|
int _gdk_imlib_isjpeg(FILE *f);
|
||
|
int _gdk_imlib_ispng(FILE *f);
|
||
|
int _gdk_imlib_istiff(FILE *f);
|
||
|
int _gdk_imlib_iseim(FILE *f);
|
||
|
int _gdk_imlib_isgif(FILE *f);
|
||
|
int _gdk_imlib_isxpm(FILE *f);
|
||
|
int _gdk_imlib_isbmp(FILE *f);
|
||
|
|
||
|
void * _gdk_malloc_image(unsigned int, unsigned int);
|
||
|
|
||
|
GdkPixmap *gdk_imlib_pixmap_foreign_new(gint width, gint height, gint depth, Pixmap pmap);
|
||
|
|
||
|
void _gdk_imlib_calc_map_tables(GdkImlibImage * im);
|
||
|
|
||
|
FILE *_gdk_imlib_open_helper(const char *, const char *, const char *);
|
||
|
int _gdk_imlib_close_helper(FILE *);
|
||
|
|
||
|
#define INDEX_RGB(r,g,b) id->fast_rgb[(r<<10)|(g<<5)|(b)]
|
||
|
#define COLOR_INDEX(i) id->palette[i].pixel
|
||
|
#define COLOR_RGB(r,g,b) id->palette[INDEX_RGB(r,g,b)].pixel
|
||
|
#define ERROR_RED(rr,i) rr-id->palette[i].r;
|
||
|
#define ERROR_GRN(gg,i) gg-id->palette[i].g;
|
||
|
#define ERROR_BLU(bb,i) bb-id->palette[i].b;
|
||
|
|
||
|
#define DITHER_ERROR(Der1,Der2,Dex,Der,Deg,Deb) \
|
||
|
ter=&(Der1[Dex]);\
|
||
|
(*ter)+=(Der*7)>>4;ter++;\
|
||
|
(*ter)+=(Deg*7)>>4;ter++;\
|
||
|
(*ter)+=(Deb*7)>>4;\
|
||
|
ter=&(Der2[Dex-6]);\
|
||
|
(*ter)+=(Der*3)>>4;ter++;\
|
||
|
(*ter)+=(Deg*3)>>4;ter++;\
|
||
|
(*ter)+=(Deb*3)>>4;ter++;\
|
||
|
(*ter)+=(Der*5)>>4;ter++;\
|
||
|
(*ter)+=(Deg*5)>>4;ter++;\
|
||
|
(*ter)+=(Deb*5)>>4;ter++;\
|
||
|
(*ter)+=Der>>4;ter++;\
|
||
|
(*ter)+=Deg>>4;ter++;\
|
||
|
(*ter)+=Deb>>4;
|
||
|
|
||
|
typedef unsigned char *(*gdk_imlib_loader_fn) (FILE *, int *w, int *h, int *transp);
|
||
|
typedef unsigned char *(*gdk_imlib_loader_fn2)(FILE *, char *fname, int *w, int *h, int *trans);
|
||
|
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadBMP;
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadXPM;
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadGIF;
|
||
|
extern gdk_imlib_loader_fn2 _gdk_imlib_LoadTIFF;
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadJPEG;
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadPNG;
|
||
|
extern gdk_imlib_loader_fn _gdk_imlib_LoadPPM;
|
||
|
|
||
|
typedef gint (*gdk_imlib_saver_fn)(GdkImlibImage *im, char *file, GdkImlibSaveInfo *info);
|
||
|
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SavePNG;
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SaveTIFF;
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SavePNG;
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SaveJPEG;
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SavePS;
|
||
|
extern gdk_imlib_saver_fn _gdk_imlib_SavePPM;
|
||
|
|
||
|
typedef GdkImlibImage * (*gdk_imlib_inline_fn)(unsigned char *data, int data_size);
|
||
|
|
||
|
extern gdk_imlib_inline_fn _gdk_imlib_inlined_png_to_image;
|
||
|
|
||
|
typedef GdkImlibImage *(*gdk_imlib_load_alpha_fn)(char *file);
|
||
|
|
||
|
extern gdk_imlib_load_alpha_fn _gdk_imlib_load_alpha_png;
|
||
|
|
||
|
#endif
|