diff options
Diffstat (limited to 'Build/source/libs/gd/libgd-src/src/gd_filename.c')
-rw-r--r-- | Build/source/libs/gd/libgd-src/src/gd_filename.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/Build/source/libs/gd/libgd-src/src/gd_filename.c b/Build/source/libs/gd/libgd-src/src/gd_filename.c index d668b01ddf3..ddfaa0269e2 100644 --- a/Build/source/libs/gd/libgd-src/src/gd_filename.c +++ b/Build/source/libs/gd/libgd-src/src/gd_filename.c @@ -37,8 +37,7 @@ static void BGD_STDCALL writebmp(gdImagePtr im, FILE *out) { }/* writejpeg*/ -enum FType {UNKNOWN, PNG, JPG, GIF, TIFF, GD, GD2, WEBP}; -static struct FileType { +static const struct FileType { const char *ext; ReadFn reader; WriteFn writer; @@ -52,6 +51,10 @@ static struct FileType { {".xbm", gdImageCreateFromXbm, NULL, NULL}, {".tga", gdImageCreateFromTga, NULL, NULL}, +#ifdef HAVE_LIBAVIF + {".avif", gdImageCreateFromAvif, gdImageAvif, NULL}, +#endif + #ifdef HAVE_LIBPNG {".png", gdImageCreateFromPng, gdImagePng, NULL}, #endif @@ -61,6 +64,11 @@ static struct FileType { {".jpeg", gdImageCreateFromJpeg, writejpeg, NULL}, #endif +#ifdef HAVE_LIBHEIF + {".heic", gdImageCreateFromHeif, gdImageHeif, NULL}, + {".heix", gdImageCreateFromHeif, NULL, NULL}, +#endif + #ifdef HAVE_LIBTIFF {".tiff", gdImageCreateFromTiff, gdImageTiff, NULL}, {".tif" , gdImageCreateFromTiff, gdImageTiff, NULL}, @@ -82,7 +90,7 @@ static struct FileType { }; -struct FileType * +static const struct FileType * ftype(const char *filename) { int n; char *ext; @@ -129,6 +137,8 @@ ftype(const char *filename) { - .tga - .png - .jpg, .jpeg + - .heif, .heix + - .avif - .tiff, .tif - .webp - .xpm @@ -147,7 +157,7 @@ ftype(const char *filename) { */ BGD_DECLARE(int) gdSupportsFileType(const char *filename, int writing) { - struct FileType *entry = ftype(filename); + const struct FileType *entry = ftype(filename); return !!entry && (!writing || !!entry->writer); }/* gdSupportsFileType*/ @@ -181,7 +191,7 @@ gdSupportsFileType(const char *filename, int writing) { BGD_DECLARE(gdImagePtr) gdImageCreateFromFile(const char *filename) { - struct FileType *entry = ftype(filename); + const struct FileType *entry = ftype(filename); FILE *fh; gdImagePtr result; @@ -237,7 +247,7 @@ gdImageCreateFromFile(const char *filename) { BGD_DECLARE(int) gdImageFile(gdImagePtr im, const char *filename) { - struct FileType *entry = ftype(filename); + const struct FileType *entry = ftype(filename); FILE *fh; if (!entry || !entry->writer) return GD_FALSE; |