diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h index 787df4e81f..e60647d6f1 100644 --- a/src/lib/evas/Evas_Loader.h +++ b/src/lib/evas/Evas_Loader.h @@ -70,7 +70,7 @@ extern "C" { #endif /* the module api version */ -#define EVAS_MODULE_API_VERSION 2 +#define EVAS_MODULE_API_VERSION 3 /* the module types */ typedef enum _Evas_Module_Type @@ -186,8 +186,11 @@ typedef Emile_Colorspace Evas_Colorspace; /**< Colorspaces for pixel data suppor #define EVAS_COLORSPACE_RGBA_S3TC_DXT4 EMILE_COLORSPACE_RGBA_S3TC_DXT4 #define EVAS_COLORSPACE_RGBA_S3TC_DXT5 EMILE_COLORSPACE_RGBA_S3TC_DXT5 +#define EVAS_IMAGE_LOAD_VERSION 1 + struct _Evas_Image_Load_Func { + int version; void *(*file_open) (Eina_File *f, Eina_Stringshare *key, Evas_Image_Load_Opts *opts, Evas_Image_Animated *animated, diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index 7d4ca66790..c0121391b9 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -183,7 +183,7 @@ _evas_image_file_header(Evas_Module *em, Image_Entry *ie, int *error) evas_image_load_func = em->functions; evas_module_use(em); *error = EVAS_LOAD_ERROR_NONE; - if (evas_image_load_func) + if (evas_image_load_func && evas_image_load_func->version == EVAS_IMAGE_LOAD_VERSION) { Evas_Image_Property property; const char *file; diff --git a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c index 43dac5b06c..c29c0c65c8 100644 --- a/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c +++ b/src/modules/evas/image_loaders/bmp/evas_image_load_bmp.c @@ -1429,6 +1429,7 @@ evas_image_load_file_data_bmp(void *loader_data, static Evas_Image_Load_Func evas_image_load_bmp_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_bmp, evas_image_load_file_close_bmp, evas_image_load_file_head_bmp, diff --git a/src/modules/evas/image_loaders/dds/evas_image_load_dds.c b/src/modules/evas/image_loaders/dds/evas_image_load_dds.c index f3b133c7c9..705ed3f2ba 100644 --- a/src/modules/evas/image_loaders/dds/evas_image_load_dds.c +++ b/src/modules/evas/image_loaders/dds/evas_image_load_dds.c @@ -529,6 +529,7 @@ on_error: Evas_Image_Load_Func evas_image_load_dds_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_dds, evas_image_load_file_close_dds, evas_image_load_file_head_dds, diff --git a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c index 9ff212f8eb..4ff20890f5 100644 --- a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c +++ b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c @@ -224,6 +224,7 @@ evas_image_load_file_data_eet(void *loader_data, Evas_Image_Load_Func evas_image_load_eet_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_eet, evas_image_load_file_close_eet, evas_image_load_file_head_eet, diff --git a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c index ec4917ffc0..4bd8528414 100644 --- a/src/modules/evas/image_loaders/generic/evas_image_load_generic.c +++ b/src/modules/evas/image_loaders/generic/evas_image_load_generic.c @@ -443,6 +443,7 @@ evas_image_load_file_data_generic(void *loader_data, Evas_Image_Load_Func evas_image_load_generic_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_generic, evas_image_load_file_close_generic, evas_image_load_file_head_generic, diff --git a/src/modules/evas/image_loaders/gif/evas_image_load_gif.c b/src/modules/evas/image_loaders/gif/evas_image_load_gif.c index 737e3fb7be..2928ff7869 100644 --- a/src/modules/evas/image_loaders/gif/evas_image_load_gif.c +++ b/src/modules/evas/image_loaders/gif/evas_image_load_gif.c @@ -905,9 +905,10 @@ evas_image_load_file_close_gif2(void *loader_data) // general module delcaration stuff static Evas_Image_Load_Func evas_image_load_gif_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_gif2, evas_image_load_file_close_gif2, - evas_image_load_file_head_gif2, + evas_image_load_file_head_gif2, evas_image_load_file_data_gif2, evas_image_load_frame_duration_gif2, EINA_TRUE, diff --git a/src/modules/evas/image_loaders/ico/evas_image_load_ico.c b/src/modules/evas/image_loaders/ico/evas_image_load_ico.c index 520ef06aa8..efdad46808 100644 --- a/src/modules/evas/image_loaders/ico/evas_image_load_ico.c +++ b/src/modules/evas/image_loaders/ico/evas_image_load_ico.c @@ -792,6 +792,7 @@ evas_image_load_file_data_ico(void *loader_data, static Evas_Image_Load_Func evas_image_load_ico_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_ico, evas_image_load_file_close_ico, evas_image_load_file_head_ico, diff --git a/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c b/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c index dd9af05acf..50ab355f93 100644 --- a/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c +++ b/src/modules/evas/image_loaders/jp2k/evas_image_load_jp2k.c @@ -462,6 +462,7 @@ evas_image_load_file_data_jp2k(void *loader_data, static Evas_Image_Load_Func evas_image_load_jp2k_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_jp2k, evas_image_load_file_close_jp2k, evas_image_load_file_head_jp2k, diff --git a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c index c80416aea0..ca712568ff 100644 --- a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c +++ b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c @@ -116,6 +116,7 @@ evas_image_load_file_data_jpeg(void *loader_data, Evas_Image_Load_Func evas_image_load_jpeg_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_jpeg, evas_image_load_file_close_jpeg, evas_image_load_file_head_jpeg, diff --git a/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c b/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c index b9c383c90b..66deda1d74 100644 --- a/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c +++ b/src/modules/evas/image_loaders/pmaps/evas_image_load_pmaps.c @@ -551,6 +551,7 @@ pmaps_buffer_plain_bw_get(Pmaps_Buffer *b, DATA32 *val) /* external functions */ Evas_Image_Load_Func evas_image_load_pmaps_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_pmaps, evas_image_load_file_close_pmaps, evas_image_load_file_head_pmaps, diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c b/src/modules/evas/image_loaders/png/evas_image_load_png.c index 087c908b63..80f7744b12 100644 --- a/src/modules/evas/image_loaders/png/evas_image_load_png.c +++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c @@ -556,6 +556,7 @@ evas_image_load_file_data_png(void *loader_data, static Evas_Image_Load_Func evas_image_load_png_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_png, evas_image_load_file_close_png, evas_image_load_file_head_png, diff --git a/src/modules/evas/image_loaders/psd/evas_image_load_psd.c b/src/modules/evas/image_loaders/psd/evas_image_load_psd.c index d8f15b3dd9..afd54b58c1 100644 --- a/src/modules/evas/image_loaders/psd/evas_image_load_psd.c +++ b/src/modules/evas/image_loaders/psd/evas_image_load_psd.c @@ -882,6 +882,7 @@ get_compressed_channels_length(PSD_Header *head, } static const Evas_Image_Load_Func evas_image_load_psd_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_psd, evas_image_load_file_close_psd, evas_image_load_file_head_psd, diff --git a/src/modules/evas/image_loaders/tga/evas_image_load_tga.c b/src/modules/evas/image_loaders/tga/evas_image_load_tga.c index 344c363ed2..4efb673805 100644 --- a/src/modules/evas/image_loaders/tga/evas_image_load_tga.c +++ b/src/modules/evas/image_loaders/tga/evas_image_load_tga.c @@ -563,6 +563,7 @@ evas_image_load_file_data_tga(void *loader_data, static Evas_Image_Load_Func evas_image_load_tga_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_tga, evas_image_load_file_close_tga, evas_image_load_file_head_tga, diff --git a/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c b/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c index 72da89af1e..e71773d899 100644 --- a/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c +++ b/src/modules/evas/image_loaders/tgv/evas_image_load_tgv.c @@ -105,6 +105,7 @@ evas_image_load_file_data_tgv(void *loader_data, Evas_Image_Load_Func evas_image_load_tgv_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_tgv, evas_image_load_file_close_tgv, evas_image_load_file_head_tgv, diff --git a/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c b/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c index e07206b51e..2603221911 100644 --- a/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c +++ b/src/modules/evas/image_loaders/tiff/evas_image_load_tiff.c @@ -332,6 +332,7 @@ evas_image_load_file_data_tiff(void *loader_data, static Evas_Image_Load_Func evas_image_load_tiff_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_tiff, evas_image_load_file_close_tiff, evas_image_load_file_head_tiff, diff --git a/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c b/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c index af539a041b..e14f5a4902 100644 --- a/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c +++ b/src/modules/evas/image_loaders/wbmp/evas_image_load_wbmp.c @@ -181,6 +181,7 @@ evas_image_load_file_data_wbmp(void *loader_data, static Evas_Image_Load_Func evas_image_load_wbmp_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_wbmp, evas_image_load_file_close_wbmp, evas_image_load_file_head_wbmp, diff --git a/src/modules/evas/image_loaders/webp/evas_image_load_webp.c b/src/modules/evas/image_loaders/webp/evas_image_load_webp.c index e3f97bb77a..9d39b225a8 100644 --- a/src/modules/evas/image_loaders/webp/evas_image_load_webp.c +++ b/src/modules/evas/image_loaders/webp/evas_image_load_webp.c @@ -112,6 +112,7 @@ evas_image_load_file_data_webp(void *loader_data, static Evas_Image_Load_Func evas_image_load_webp_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_webp, evas_image_load_file_close_webp, evas_image_load_file_head_webp, diff --git a/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c b/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c index 4bf08b5a8d..3b5e682139 100644 --- a/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c +++ b/src/modules/evas/image_loaders/xpm/evas_image_load_xpm.c @@ -2214,6 +2214,7 @@ evas_image_load_file_data_xpm(void *loader_data, static Evas_Image_Load_Func evas_image_load_xpm_func = { + EVAS_IMAGE_LOAD_VERSION, evas_image_load_file_open_xpm, evas_image_load_file_close_xpm, evas_image_load_file_head_xpm,