/***********************************************************
* Artsoft Retro-Game Library *
*----------------------------------------------------------*
-* (c) 1994-2002 Artsoft Entertainment *
+* (c) 1994-2006 Artsoft Entertainment *
* Holger Schemel *
* Detmolder Strasse 189 *
* 33604 Bielefeld *
note: the internal format is big endian */
#define memory_to_value(ptr, len) ( \
-(len) == 1 ? (unsigned long)( *( (byte *)(ptr)) ) : \
-(len) == 2 ? (unsigned long)(((unsigned long)(*( (byte *)(ptr)) ))<< 8) \
- + ( *(((byte *)(ptr))+1) ) : \
-(len) == 3 ? (unsigned long)(((unsigned long)(*( (byte *)(ptr)) ))<<16) \
- + (((unsigned long)(*(((byte *)(ptr))+1)))<< 8) \
- + ( *(((byte *)(ptr))+2) ) : \
- (unsigned long)(((unsigned long)(*( (byte *)(ptr)) ))<<24) \
- + (((unsigned long)(*(((byte *)(ptr))+1)))<<16) \
- + (((unsigned long)(*(((byte *)(ptr))+2)))<< 8) \
- + ( *(((byte *)(ptr))+3) ) )
+(len) == 1 ? (unsigned int)( *( (byte *)(ptr)) ) : \
+(len) == 2 ? (unsigned int)(((unsigned int)(*( (byte *)(ptr)) ))<< 8) \
+ + ( *(((byte *)(ptr))+1) ) : \
+(len) == 3 ? (unsigned int)(((unsigned int)(*( (byte *)(ptr)) ))<<16) \
+ + (((unsigned int)(*(((byte *)(ptr))+1)))<< 8) \
+ + ( *(((byte *)(ptr))+2) ) : \
+ (unsigned int)(((unsigned int)(*( (byte *)(ptr)) ))<<24) \
+ + (((unsigned int)(*(((byte *)(ptr))+1)))<<16) \
+ + (((unsigned int)(*(((byte *)(ptr))+2)))<< 8) \
+ + ( *(((byte *)(ptr))+3) ) )
#define value_to_memory(value, ptr, len) ( \
(len) == 1 ? (*( (byte *)(ptr) ) = ( value ) ) : \
-(len) == 2 ? (*( (byte *)(ptr) ) = (((unsigned long)(value))>> 8), \
+(len) == 2 ? (*( (byte *)(ptr) ) = (((unsigned int)(value))>> 8), \
*(((byte *)(ptr))+1) = ( value ) ) : \
-(len) == 3 ? (*( (byte *)(ptr) ) = (((unsigned long)(value))>>16), \
- *(((byte *)(ptr))+1) = (((unsigned long)(value))>> 8), \
+(len) == 3 ? (*( (byte *)(ptr) ) = (((unsigned int)(value))>>16), \
+ *(((byte *)(ptr))+1) = (((unsigned int)(value))>> 8), \
*(((byte *)(ptr))+2) = ( value ) ) : \
- (*( (byte *)(ptr) ) = (((unsigned long)(value))>>24), \
- *(((byte *)(ptr))+1) = (((unsigned long)(value))>>16), \
- *(((byte *)(ptr))+2) = (((unsigned long)(value))>> 8), \
+ (*( (byte *)(ptr) ) = (((unsigned int)(value))>>24), \
+ *(((byte *)(ptr))+1) = (((unsigned int)(value))>>16), \
+ *(((byte *)(ptr))+2) = (((unsigned int)(value))>> 8), \
*(((byte *)(ptr))+3) = ( value ) ))
static Pixmap Image_to_Mask(Image *image, Display *display, Window window)
if (!private_cmap)
{
if (options.verbose)
- Error(ERR_RETURN, "switching to private colormap");
+ Error(ERR_INFO, "switching to private colormap");
/* we just filled up the default colormap -- get a private one
which contains all already allocated colors */
break;
default:
- Error(ERR_RETURN,"DirectColor, TrueColor or PseudoColor display needed");
+ Error(ERR_INFO,"DirectColor, TrueColor or PseudoColor display needed");
SetError(error, "display class not supported");
return NULL;
}
default:
- Error(ERR_RETURN, "RGB or TrueColor image needed");
+ Error(ERR_INFO, "RGB or TrueColor image needed");
SetError(error, "image type not supported");
return NULL;
}
default:
- Error(ERR_RETURN,"DirectColor, TrueColor or PseudoColor display needed");
+ Error(ERR_INFO,"DirectColor, TrueColor or PseudoColor display needed");
SetError(error, "display class not supported");
return NULL;
if (scale_down)
{
+#if 1
+ zoom_factor = MIN(src_width / dst_width, src_height / dst_height);
+#else
zoom_factor = src_width / dst_width;
+#endif
/* adjust source image size to integer multiple of destination size */
src_width = dst_width * zoom_factor;
}
else
{
+#if 1
+ zoom_factor = MIN(dst_width / src_width, dst_height / src_height);
+#else
zoom_factor = dst_width / src_width;
+#endif
/* no adjustment needed when scaling up (some pixels may be left blank) */
}
int i;
for (i = 0; i < num_list_entries; i++)
- if (strcmp(file_list[i].token, token) == 0)
+ if (strEqual(file_list[i].token, token))
return i;
return -1;
img_info->scaled_up = TRUE;
}
+void ScaleImage(int pos, int zoom_factor)
+{
+ ImageInfo *img_info = getImageInfoEntryFromImageID(pos);
+
+ if (img_info == NULL || img_info->scaled_up)
+ return;
+
+ if (zoom_factor != 1)
+ ScaleBitmap(img_info->bitmap, zoom_factor);
+
+ img_info->scaled_up = TRUE;
+}
+
void FreeAllImages()
{
FreeCustomArtworkLists(image_info);