diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-06-22 19:12:57 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-06-22 19:12:57 +0100 |
commit | 354de433e9b9599a46952cbddfb0e53f1e9f37e6 (patch) | |
tree | 3c761815b38fc4cb9f7da17d127235d6c3f984b6 /amiga | |
parent | 73d6b47e6a4152cd0fe7dd6b9651701ef2a47609 (diff) | |
download | netsurf-354de433e9b9599a46952cbddfb0e53f1e9f37e6.tar.gz netsurf-354de433e9b9599a46952cbddfb0e53f1e9f37e6.tar.bz2 |
Scale cached favicons before they are cached. This avoids the need to scale icons on menu creation.
Diffstat (limited to 'amiga')
-rw-r--r-- | amiga/bitmap.c | 8 | ||||
-rwxr-xr-x | amiga/bitmap.h | 2 | ||||
-rw-r--r-- | 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 <libraries/Picasso96.h> #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); } } |