X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fimage.c;h=f06a126ec6171fbcdc74014af811cc39c79ca202;hb=1bd9644544424ed912d886777c6e8ed387aac24a;hp=b7634e85366b6e06b6b1ed177a9302c777cf1473;hpb=29fc833ae1b5e46a429a9fa82098e8ad94f6f400;p=rocksndiamonds.git diff --git a/src/libgame/image.c b/src/libgame/image.c index b7634e85..f06a126e 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -586,9 +586,13 @@ void ZoomPixmap(Display *display, GC gc, Pixmap src_pixmap, Pixmap dst_pixmap, int zoom_factor = src_width / dst_width; /* currently very limited! */ int row_skip, col_skip; + /* adjust source image size to integer multiple of destination image size */ + src_width = dst_width * zoom_factor; + src_height = dst_height * zoom_factor; + /* copy source pixmap to temporary image */ - src_ximage = XGetImage(display, src_pixmap, 0, 0, - src_width, src_height, AllPlanes, ZPixmap); + src_ximage = XGetImage(display, src_pixmap, 0, 0, src_width, src_height, + AllPlanes, ZPixmap); bits_per_pixel = src_ximage->bits_per_pixel; bytes_per_pixel = (bits_per_pixel + 7) / 8; @@ -609,12 +613,12 @@ void ZoomPixmap(Display *display, GC gc, Pixmap src_pixmap, Pixmap dst_pixmap, /* scale image down by scaling factor 'zoom_factor' */ for (y=0; y < src_height; y += zoom_factor, src_ptr += row_skip) for (x=0; x < src_width; x += zoom_factor, src_ptr += col_skip) - for (i=0; ifile_list; return file_list[graphic].token; +#else + struct FileInfo *file_list = getImageListEntry(graphic); + + return (file_list != NULL ? file_list->token : NULL); +#endif +} + +int getImageIDFromToken(char *token) +{ + struct FileInfo *file_list = image_info->file_list; + int num_list_entries = image_info->num_file_list_entries; + int i; + + for (i=0; i < num_list_entries; i++) + if (strcmp(file_list[i].token, token) == 0) + return i; + + return -1; } char *getImageConfigFilename() @@ -837,7 +861,7 @@ void InitImageList(struct ConfigInfo *config_list, int num_file_list_entries, image_info->num_dynamic_file_list_entries = 0; image_info->file_list = - getFileListFromConfigList(config_list, config_suffix_list, + getFileListFromConfigList(config_list, config_suffix_list, ignore_tokens, num_file_list_entries); image_info->dynamic_file_list = NULL; @@ -915,6 +939,10 @@ void CreateImageWithSmallImages(int pos) CreateBitmapWithSmallBitmaps(img_info->bitmap); img_info->contains_small_images = TRUE; + +#if 0 + printf("CreateImageWithSmallImages: '%s' done\n", img_info->source_filename); +#endif } void FreeAllImages()