summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/src/gd_filename.c
diff options
context:
space:
mode:
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.c22
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;