X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fimage.h;h=c3c1e0d16a2ff3f287a28729910a9f6920996a10;hp=1257dda1ca2750eb7ec218aa44656efd9656e870;hb=61c3da024802ecc0268bab42d7499fc0346e4fd3;hpb=222cd4187e6632bd904a937f167a2f1c70b8f66d diff --git a/src/libgame/image.h b/src/libgame/image.h index 1257dda1..c3c1e0d1 100644 --- a/src/libgame/image.h +++ b/src/libgame/image.h @@ -1,30 +1,23 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1994-2006 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* image.h * +* image.h * ***********************************************************/ #ifndef IMAGE_H #define IMAGE_H -#include "platform.h" - -#ifndef TARGET_SDL - -#include "types.h" #include "system.h" -/* -#include "types.h" -#include "x11.h" -*/ + +#if defined(TARGET_X11) #define MAX_COLORS 256 /* maximal number of colors for each image */ @@ -52,17 +45,54 @@ struct RGBMap typedef struct { + unsigned int type; /* type of image (True-Color etc.) */ struct RGBMap rgb; /* RGB map of image if IRGB type */ unsigned int width; /* width of image in pixels */ unsigned int height; /* height of image in pixels */ unsigned int depth; /* depth of image in bits if IRGB type */ + unsigned int bytes_per_pixel;/* (depth + 7) / 8 */ + unsigned int bytes_per_row; /* width * bytes_per_pixel */ byte *data; /* image data */ } Image; +#define IMAGETYPE_BITMAP 0 /* monochrome bitmap */ +#define IMAGETYPE_RGB 1 /* RGB image with colormap */ +#define IMAGETYPE_TRUECOLOR 2 /* true-color image */ + +#define TRUECOLOR_RED(pixel) (((unsigned int)((pixel) & 0xff0000)) >> 16) +#define TRUECOLOR_GREEN(pixel) (((unsigned int)((pixel) & 0xff00)) >> 8) +#define TRUECOLOR_BLUE(pixel) ( (unsigned int)((pixel) & 0xff)) +#define RGB_TO_TRUECOLOR(r,g,b) ((((unsigned int)((r) & 0xff00)) << 8) | ((g) & 0xff00) | (((unsigned short)(b)) >> 8)) + Image *newImage(unsigned int, unsigned int, unsigned int); void freeImage(Image *); void freeXImage(Image *, XImageInfo *); + +Pixmap Pixmap_to_Mask(Pixmap, int, int); + +void ZoomPixmap(Display *, GC, Pixmap, Pixmap, int, int, int, int); + int Read_PCX_to_Pixmap(Display *, Window, GC, char *, Pixmap *, Pixmap *); -#endif /* !TARGET_SDL */ +#endif /* TARGET_X11 */ + +int getImageListSize(); +struct FileInfo *getImageListEntryFromImageID(int); +Bitmap *getBitmapFromImageID(int); +int getOriginalImageWidthFromImageID(int); +int getOriginalImageHeightFromImageID(int); +char *getTokenFromImageID(int); +int getImageIDFromToken(char *); +char *getImageConfigFilename(); +int getImageListPropertyMappingSize(); +struct PropertyMapping *getImageListPropertyMapping(); +void InitImageList(struct ConfigInfo *, int, struct ConfigTypeInfo *, + char **, char **, char **, char **, char **); + +void ReloadCustomImages(); +void CreateImageWithSmallImages(int, int); +void ScaleImage(int, int); + +void FreeAllImages(); + #endif /* IMAGE_H */