X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fimage.c;h=9dd4c249ec18004925481adf135f5e78e43cbc45;hb=4bca9bc5f299a9b287134b06e41b147f506792b4;hp=09a75fcee078a7eb6628042246a6acd67ecef6be;hpb=0918c3eb2f6219a8cc72aa85bd9c4889788dd474;p=rocksndiamonds.git diff --git a/src/image.c b/src/image.c index 09a75fce..9dd4c249 100644 --- a/src/image.c +++ b/src/image.c @@ -11,12 +11,43 @@ * image.c * ***********************************************************/ +#if defined(TARGET_X11) + #include "image.h" #include "pcx.h" #include "misc.h" -/* exclude all except newImage() and freeImage() */ -#ifndef MSDOS +/* for MS-DOS/Allegro, exclude all except newImage() and freeImage() */ + +Image *newImage(unsigned int width, unsigned int height, unsigned int depth) +{ + Image *image; + const unsigned int bytes_per_pixel = 1; + int i; + + if (depth > 8) + Error(ERR_EXIT, "images with more than 256 colors are not supported"); + + depth = 8; + image = checked_malloc(sizeof(Image)); + image->data = checked_malloc(width * height * bytes_per_pixel); + image->width = width; + image->height = height; + image->depth = depth; + image->rgb.used = 0; + for (i=0; irgb.color_used[i] = FALSE; + + return image; +} + +void freeImage(Image *image) +{ + free(image->data); + free(image); +} + +#if defined(PLATFORM_UNIX) /* extra colors to try allocating in private color maps to minimize flashing */ #define NOFLASH_COLORS 256 @@ -467,38 +498,6 @@ void freeXImage(Image *image, XImageInfo *ximageinfo) free(ximageinfo); } -#endif /* !MSDOS */ - -Image *newImage(unsigned int width, unsigned int height, unsigned int depth) -{ - Image *image; - const unsigned int bytes_per_pixel = 1; - int i; - - if (depth > 8) - Error(ERR_EXIT, "images with more than 256 colors are not supported"); - - depth = 8; - image = checked_malloc(sizeof(Image)); - image->data = checked_malloc(width * height * bytes_per_pixel); - image->width = width; - image->height = height; - image->depth = depth; - image->rgb.used = 0; - for (i=0; irgb.color_used[i] = FALSE; - - return image; -} - -void freeImage(Image *image) -{ - free(image->data); - free(image); -} - -#ifndef MSDOS - int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename, Pixmap *pixmap, Pixmap *pixmap_mask) { @@ -514,7 +513,7 @@ int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename, /* read the graphic file in PCX format to image structure */ if ((image = Read_PCX_to_Image(filename)) == NULL) - return PCX_FileInvalid; + return errno_pcx; #if DEBUG_TIMING printf("%s:\n", filename); @@ -548,7 +547,8 @@ int Read_PCX_to_Pixmap(Display *display, Window window, GC gc, char *filename, *pixmap = ximageinfo->pixmap; *pixmap_mask = ximageinfo->pixmap_mask; - return(PCX_Success); + return PCX_Success; } -#endif /* !MSDOS */ +#endif /* PLATFORM_UNIX */ +#endif /* TARGET_X11 */