evas: break Evas_Loader API and introduce a version numbering for Image_Loader.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9099
This commit is contained in:
Cedric BAIL 2019-05-31 10:43:32 -07:00
parent 2020f971a4
commit 9f35c74d9d
19 changed files with 23 additions and 3 deletions

View File

@ -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,

View File

@ -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;

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,