1 /*********************************************************** 2 * Artsoft Retro-Game Library * 3 *----------------------------------------------------------* 4 * (c) 1994-2001 Artsoft Entertainment * 5 * Holger Schemel * 6 * Detmolder Strasse 189 * 7 * 33604 Bielefeld * 8 * Germany * 9 * e-mail: info@artsoft.org * 10 *----------------------------------------------------------* 11 * image.h * 12 ***********************************************************/ 13 14 #ifndef IMAGE_H 15 #define IMAGE_H 16 17 #include "system.h" 18 19 20 #if defined(TARGET_X11) 21 22 #define MAX_COLORS 256 /* maximal number of colors for each image */ 23 24 typedef unsigned short Intensity; /* RGB intensity for X11 */ 25 26 typedef struct 27 { 28 Display *display; /* destination display */ 29 int depth; /* depth of destination drawable */ 30 Pixel index[MAX_COLORS]; /* array of pixel values */ 31 int no; /* number of pixels in the array */ 32 Colormap cmap; /* colormap used for image */ 33 Pixmap pixmap; /* final pixmap */ 34 Pixmap pixmap_mask; /* final pixmap of mask */ 35 } XImageInfo; 36 37 struct RGBMap 38 { 39 unsigned int used; /* number of colors used in RGB map */ 40 Intensity red[MAX_COLORS]; /* color values in X style */ 41 Intensity green[MAX_COLORS]; 42 Intensity blue[MAX_COLORS]; 43 boolean color_used[MAX_COLORS]; /* flag if color cell is used */ 44 }; 45 46 typedef struct 47 { 48 struct RGBMap rgb; /* RGB map of image if IRGB type */ 49 unsigned int width; /* width of image in pixels */ 50 unsigned int height; /* height of image in pixels */ 51 unsigned int depth; /* depth of image in bits if IRGB type */ 52 byte *data; /* image data */ 53 } Image; 54 55 Image *newImage(unsigned int, unsigned int, unsigned int); 56 void freeImage(Image *); 57 void freeXImage(Image *, XImageInfo *); 58 int Read_PCX_to_Pixmap(Display *, Window, GC, char *, Pixmap *, Pixmap *); 59 60 #endif /* TARGET_X11 */ 61 62 #endif /* IMAGE_H */ 63