/***********************************************************
* Artsoft Retro-Game Library *
*----------------------------------------------------------*
-* (c) 1994-2000 Artsoft Entertainment *
+* (c) 1994-2001 Artsoft Entertainment *
* Holger Schemel *
* Detmolder Strasse 189 *
* 33604 Bielefeld *
***********************************************************/
#include "system.h"
+#include "pcx.h"
#include "misc.h"
Pixmap icon_pixmap, iconmask_pixmap;
unsigned int icon_width, icon_height;
int icon_hot_x, icon_hot_y;
+#if 0
char icon_filename[256];
+#endif
XSizeHints size_hints;
XWMHints wm_hints;
XClassHint class_hints;
options.ro_base_directory, GRAPHICS_DIRECTORY,
icon_pic.picture_filename);
#endif
- XReadBitmapFile(display, new_window->drawable, program.x11_icon_filename,
- &icon_width, &icon_height,
- &icon_pixmap, &icon_hot_x, &icon_hot_y);
- if (!icon_pixmap)
- Error(ERR_EXIT, "cannot read icon bitmap file '%s'", icon_filename);
+ if (XReadBitmapFile(display, new_window->drawable,
+ program.x11_icon_filename,
+ &icon_width, &icon_height, &icon_pixmap,
+ &icon_hot_x, &icon_hot_y) != BitmapSuccess)
+ Error(ERR_EXIT, "cannot read icon bitmap file '%s'",
+ program.x11_icon_filename);
#if 0
sprintf(icon_filename, "%s/%s/%s",
options.ro_base_directory, GRAPHICS_DIRECTORY,
icon_pic.picturemask_filename);
#endif
- XReadBitmapFile(display, new_window->drawable, program.x11_iconmask_filename,
- &icon_width, &icon_height,
- &iconmask_pixmap, &icon_hot_x, &icon_hot_y);
- if (!iconmask_pixmap)
- Error(ERR_EXIT, "cannot read icon bitmap file '%s'", icon_filename);
+ if (XReadBitmapFile(display, new_window->drawable,
+ program.x11_iconmask_filename,
+ &icon_width, &icon_height, &iconmask_pixmap,
+ &icon_hot_x, &icon_hot_y) != BitmapSuccess)
+ Error(ERR_EXIT, "cannot read icon bitmap file '%s'",
+ program.x11_iconmask_filename);
size_hints.width = size_hints.min_width = size_hints.max_width = width;
size_hints.height = size_hints.min_height = size_hints.max_height = height;
return new_window;
}
+Bitmap *X11LoadImage(char *filename)
+{
+ Bitmap *new_bitmap = CreateBitmapStruct();
+ int pcx_err;
+
+#if defined(PLATFORM_MSDOS)
+ rest(100);
+#endif
+
+ pcx_err = Read_PCX_to_Pixmap(display, window->drawable, window->gc, filename,
+ &new_bitmap->drawable, &new_bitmap->clip_mask);
+ switch(pcx_err)
+ {
+ case PCX_Success:
+ break;
+ case PCX_OpenFailed:
+ Error(ERR_EXIT, "cannot open PCX file '%s'", filename);
+ case PCX_ReadFailed:
+ Error(ERR_EXIT, "cannot read PCX file '%s'", filename);
+ case PCX_FileInvalid:
+ Error(ERR_EXIT, "invalid PCX file '%s'", filename);
+ case PCX_NoMemory:
+ Error(ERR_EXIT, "not enough memory for PCX file '%s'", filename);
+ case PCX_ColorFailed:
+ Error(ERR_EXIT, "cannot get colors for PCX file '%s'", filename);
+ default:
+ break;
+ }
+
+ if (!new_bitmap->drawable)
+ Error(ERR_EXIT, "cannot get graphics for '%s'", filename);
+
+ if (!new_bitmap->clip_mask)
+ Error(ERR_EXIT, "cannot get clipmask for '%s'", filename);
+
+ /* set GraphicContext inheritated from Window */
+ new_bitmap->gc = window->gc;
+
+ return new_bitmap;
+}
+
#endif /* TARGET_X11 */