From 354de433e9b9599a46952cbddfb0e53f1e9f37e6 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Mon, 22 Jun 2015 19:12:57 +0100 Subject: Scale cached favicons before they are cached. This avoids the need to scale icons on menu creation. --- amiga/bitmap.c | 8 ++++++++ amiga/bitmap.h | 2 +- amiga/gui.c | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/amiga/bitmap.c b/amiga/bitmap.c index bdb6abc63..23f3a45e7 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -123,6 +123,14 @@ bool amiga_bitmap_save(void *bitmap, const char *path, unsigned flags) if((dto = ami_datatype_object_from_bitmap(bitmap))) { + if (flags & AMI_BITMAP_SCALE_ICON) { + IDoMethod(dto, PDTM_SCALE, 16, 16, 0); + + if((DoDTMethod(dto, 0, 0, DTM_PROCLAYOUT, 0, 1)) == 0) { + return false; + } + } + err = SaveDTObjectA(dto, NULL, NULL, path, DTWM_IFF, FALSE, NULL); DisposeDTObject(dto); } diff --git a/amiga/bitmap.h b/amiga/bitmap.h index 63969ecaa..f27087171 100755 --- a/amiga/bitmap.h +++ b/amiga/bitmap.h @@ -25,7 +25,7 @@ #include #define AMI_BITMAP_FORMAT RGBFB_R8G8B8A8 -#define AMI_BITMAP_FORCE_OVERWRITE 0xFF +#define AMI_BITMAP_SCALE_ICON 0xFF struct gui_bitmap_table *amiga_bitmap_table; diff --git a/amiga/gui.c b/amiga/gui.c index 5c671e1e2..1eb561da6 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -3082,7 +3082,7 @@ static void ami_gui_cache_favicon(nsurl *url, struct bitmap *favicon) STRPTR filename = NULL; if ((filename = ami_gui_get_cache_favicon_name(url, false))) { - if(favicon) amiga_bitmap_save(favicon, filename, AMI_BITMAP_FORCE_OVERWRITE); + if(favicon) amiga_bitmap_save(favicon, filename, AMI_BITMAP_SCALE_ICON); FreeVec(filename); } } -- cgit v1.2.3