From 6b046ec845b6e0dc5d87f8d6f6524d1794678727 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 4 Mar 2019 13:36:57 -0500 Subject: [PATCH] efl.gfx: remove Efl.Gfx.Image_Load_Error Summary: this is now implemented through Eina.Error ref T7718 Depends on D8066 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7718 Differential Revision: https://phab.enlightenment.org/D8067 --- src/lib/edje/edje_load.c | 2 +- src/lib/edje/efl_canvas_layout.eo | 2 +- src/lib/efl/interfaces/efl_gfx_image.eo | 2 +- .../efl_gfx_image_load_controller.eo | 2 +- src/lib/efl/interfaces/efl_gfx_types.eot | 28 +++--- src/lib/evas/canvas/efl_canvas_image.c | 10 +- src/lib/evas/canvas/efl_canvas_proxy.c | 2 +- src/lib/evas/canvas/efl_canvas_scene3d.c | 4 +- src/lib/evas/canvas/evas_image_legacy.c | 21 ++-- src/lib/evas/canvas/evas_image_private.h | 2 +- src/lib/evas/canvas/evas_main.c | 97 +++++++++++++++++++ src/lib/evas/canvas/evas_object_image.c | 20 ++-- src/lib/evas/include/evas_common_private.h | 2 +- src/lib/evas/include/evas_private.h | 5 +- src/lib/evas/vg/evas_vg_cache.c | 2 +- .../evas/engines/gl_common/evas_gl_image.c | 8 +- .../evas/vg_savers/eet/evas_vg_save_eet.c | 2 +- .../evas/vg_savers/svg/evas_vg_save_svg.c | 4 +- 18 files changed, 162 insertions(+), 53 deletions(-) diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index 9256d43acf..a323f93a9f 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -171,7 +171,7 @@ _efl_canvas_layout_efl_file_group_get(Eo *obj EINA_UNUSED, Edje *ed) return ed->group; } -EOLIAN Efl_Gfx_Image_Load_Error +EOLIAN Eina_Error _efl_canvas_layout_layout_load_error_get(const Eo *obj EINA_UNUSED, Edje *ed) { switch (ed->load_error) diff --git a/src/lib/edje/efl_canvas_layout.eo b/src/lib/edje/efl_canvas_layout.eo index 5886c8ec20..8bcc728717 100644 --- a/src/lib/edje/efl_canvas_layout.eo +++ b/src/lib/edje/efl_canvas_layout.eo @@ -77,7 +77,7 @@ class @beta Efl.Canvas.Layout extends Efl.Canvas.Group implements Efl.File, Efl. [[Gets the (last) file loading error for a given object.]] } values { - error: Efl.Gfx.Image_Load_Error(Efl.Gfx.Image_Load_Error.none); [[The load error code.]] + error: Eina.Error; [[The load error code.]] } } content_remove { diff --git a/src/lib/efl/interfaces/efl_gfx_image.eo b/src/lib/efl/interfaces/efl_gfx_image.eo index eb23f3fe30..5d42432aba 100644 --- a/src/lib/efl/interfaces/efl_gfx_image.eo +++ b/src/lib/efl/interfaces/efl_gfx_image.eo @@ -208,7 +208,7 @@ interface @beta Efl.Gfx.Image [[Gets the (last) file loading error for a given object.]] } values { - error: Efl.Gfx.Image_Load_Error(Efl.Gfx.Image_Load_Error.none); [[The load error code.]] + error: Eina.Error; [[The load error code.]] } } } diff --git a/src/lib/efl/interfaces/efl_gfx_image_load_controller.eo b/src/lib/efl/interfaces/efl_gfx_image_load_controller.eo index 4771be1478..1727e578e6 100644 --- a/src/lib/efl/interfaces/efl_gfx_image_load_controller.eo +++ b/src/lib/efl/interfaces/efl_gfx_image_load_controller.eo @@ -180,6 +180,6 @@ interface @beta Efl.Gfx.Image_Load_Controller } events { load,done: void; [[Called when he image was loaded]] - load,error: Efl.Gfx.Image_Load_Error; [[Called when an error happened during image loading]] + load,error: Eina.Error; [[Called when an error happened during image loading]] } } diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index 6f64ce30f0..283c9286dd 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -188,22 +188,6 @@ enum Efl.Gfx.Hint_Aspect aspect.]] } -enum Efl.Gfx.Image_Load_Error -{ - [[Image or Edje load error type]] - none = 0, [[No error on load]] - generic = 1, [[A non-specific error occurred]] - does_not_exist = 2, [[File (or file path) does not exist]] - permission_denied = 3, [[Permission denied to an existing file (or path)]] - resource_allocation_failed = 4, [[Allocation of resources failure prevented load]] - corrupt_file = 5, [[File corrupt (but was detected as a known format)]] - unknown_format = 6, [[File is not a known format]] - cancelled = 7, [[Reading operation has been cancelled during decoding]] - incompatible_file = 8, [[(Edje only) The file pointed to is incompatible, i.e., it doesn't match the library's current version's format.]] - unknown_collection = 9, [[(Edje only) The group/collection set to load from was not found in the file]] - recursive_reference = 10 [[(Edje only) The group/collection set to load from had recursive references on its components]] -} - enum Efl.Gfx.Color_Class_Layer { [[Efl Gfx Color Class layer enum]] normal = 0, [[Default color]] @@ -212,3 +196,15 @@ enum Efl.Gfx.Color_Class_Layer { } type Efl.Font.Size: int; [[Efl font size type]] + +var Efl.Gfx.Image.Load_Error.NONE: Eina.Error; [[No error on load]] +var Efl.Gfx.Image.Load_Error.GENERIC: Eina.Error; [[A non-specific error occurred]] +var Efl.Gfx.Image.Load_Error.DOES_NOT_EXIST: Eina.Error; [[File (or file path) does not exist]] +var Efl.Gfx.Image.Load_Error.PERMISSION_DENIED: Eina.Error; [[Permission denied to an existing file (or path)]] +var Efl.Gfx.Image.Load_Error.RESOURCE_ALLOCATION_FAILED: Eina.Error; [[Allocation of resources failure prevented load]] +var Efl.Gfx.Image.Load_Error.CORRUPT_FILE: Eina.Error; [[File corrupt (but was detected as a known format)]] +var Efl.Gfx.Image.Load_Error.UNKNOWN_FORMAT: Eina.Error; [[File is not a known format]] +var Efl.Gfx.Image.Load_Error.CANCELLED: Eina.Error; [[Reading operation has been cancelled during decoding]] +var Efl.Gfx.Image.Load_Error.INCOMPATIBLE_FILE: Eina.Error; [[(Edje only) The file pointed to is incompatible, i.e., it doesn't match the library's current version's format.]] +var Efl.Gfx.Image.Load_Error.UNKNOWN_COLLECTION: Eina.Error; [[(Edje only) The group/collection set to load from was not found in the file]] +var Efl.Gfx.Image.Load_Error.RECURSIVE_REFERENCE: Eina.Error; [[(Edje only) The group/collection set to load from had recursive references on its components]] diff --git a/src/lib/evas/canvas/efl_canvas_image.c b/src/lib/evas/canvas/efl_canvas_image.c index 0d95f2f17e..c89ee213f8 100644 --- a/src/lib/evas/canvas/efl_canvas_image.c +++ b/src/lib/evas/canvas/efl_canvas_image.c @@ -12,6 +12,7 @@ _evas_image_file_load(Eo *eo_obj) Evas_Image_Load_Opts lo; const Eina_File *f = efl_file_mmap_get(eo_obj); const char *key = efl_file_key_get(eo_obj); + int load_error; EINA_SAFETY_ON_NULL_RETURN_VAL(f, EINA_FALSE); @@ -26,7 +27,8 @@ _evas_image_file_load(Eo *eo_obj) obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); evas_object_async_block(obj); _evas_image_init_set(f, key, eo_obj, obj, o, &lo); - o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &o->load_error, &lo); + o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); o->buffer_data_set = EINA_FALSE; _evas_image_done_set(eo_obj, obj, o); o->file_size.w = o->cur->image.w; @@ -787,11 +789,11 @@ _efl_canvas_image_efl_object_dbg_info_get(Eo *obj, void *pd EINA_UNUSED, Efl_Dbg (root)) { Efl_Dbg_Info *group = EFL_DBG_INFO_LIST_APPEND(root, MY_CLASS_NAME); - Evas_Load_Error error = EVAS_LOAD_ERROR_GENERIC; + Eina_Error error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; - error = (Evas_Load_Error) efl_gfx_image_load_error_get(obj); + error = efl_gfx_image_load_error_get(obj); EFL_DBG_INFO_APPEND(group, "Load Error", EINA_VALUE_TYPE_STRING, - evas_load_error_str(error)); + eina_error_msg_get(error)); } } diff --git a/src/lib/evas/canvas/efl_canvas_proxy.c b/src/lib/evas/canvas/efl_canvas_proxy.c index 734b8bc689..c8368eaed6 100644 --- a/src/lib/evas/canvas/efl_canvas_proxy.c +++ b/src/lib/evas/canvas/efl_canvas_proxy.c @@ -229,7 +229,7 @@ _evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src) EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) state_write->source = eo_src; EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); - o->load_error = EVAS_LOAD_ERROR_NONE; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE;; o->proxyerror = 0; EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write) diff --git a/src/lib/evas/canvas/efl_canvas_scene3d.c b/src/lib/evas/canvas/efl_canvas_scene3d.c index 3dff89783a..513a68ba94 100644 --- a/src/lib/evas/canvas/efl_canvas_scene3d.c +++ b/src/lib/evas/canvas/efl_canvas_scene3d.c @@ -9,12 +9,14 @@ _efl_canvas_scene3d_scene3d_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Canvas3D_ Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); Evas_Image_Load_Opts lo; + int load_error; if (o->cur->scene == scene) return; evas_object_async_block(obj); _evas_image_init_set(NULL, NULL, eo_obj, obj, o, &lo); - o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &o->load_error, &lo); + o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); _evas_image_done_set(eo_obj, obj, o); if (scene) _evas_image_3d_set(eo_obj, scene); diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c index 88052a7deb..81e5af7926 100644 --- a/src/lib/evas/canvas/evas_image_legacy.c +++ b/src/lib/evas/canvas/evas_image_legacy.c @@ -393,7 +393,7 @@ EAPI Evas_Load_Error evas_object_image_load_error_get(const Evas_Object *obj) { EVAS_IMAGE_API(obj, EVAS_LOAD_ERROR_GENERIC); - return efl_gfx_image_load_error_get(obj); + return _efl_gfx_image_load_error_to_evas_load_error(efl_gfx_image_load_error_get(obj)); } EAPI void @@ -542,7 +542,7 @@ evas_object_image_native_surface_set(Evas_Object *eo_obj, Evas_Native_Surface *s { Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS); - o->load_error = EVAS_LOAD_ERROR_GENERIC; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; } } @@ -669,7 +669,7 @@ evas_object_image_data_set(Eo *eo_obj, void *data) o->changed = EINA_TRUE; evas_object_change(eo_obj, obj); } - o->load_error = EVAS_LOAD_ERROR_NONE; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; if ((o->cur->image.w != 0) || (o->cur->image.h != 0)) resize_call = EINA_TRUE; @@ -718,6 +718,7 @@ evas_object_image_data_get(const Eo *eo_obj, Eina_Bool for_writing) void *pixels = NULL; int stride = 0; DATA32 *data; + int load_error; if (!o->engine_data) return NULL; @@ -731,7 +732,8 @@ evas_object_image_data_get(const Eo *eo_obj, Eina_Bool for_writing) ENFN->image_scale_hint_set(ENC, o->engine_data, o->scale_hint); if (ENFN->image_content_hint_set) ENFN->image_content_hint_set(ENC, o->engine_data, o->content_hint); - pixels = ENFN->image_data_get(ENC, o->engine_data, for_writing, &data, &o->load_error, &tofree); + pixels = ENFN->image_data_get(ENC, o->engine_data, for_writing, &data, &load_error, &tofree); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); /* if we fail to get engine_data, we have to return NULL */ if (!pixels || !data) goto error; @@ -1110,6 +1112,7 @@ evas_object_image_data_convert(Evas_Object *eo_obj, Evas_Colorspace to_cspace) void *engine_data; DATA32 *data; void* result = NULL; + int load_error; static int warned = 0; if (!warned) @@ -1130,7 +1133,8 @@ evas_object_image_data_convert(Evas_Object *eo_obj, Evas_Colorspace to_cspace) ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_TRUE); } data = NULL; - engine_data = ENFN->image_data_get(ENC, o->engine_data, 0, &data, &o->load_error, NULL); + engine_data = ENFN->image_data_get(ENC, o->engine_data, 0, &data, &load_error, NULL); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); result = _evas_image_data_convert_internal(o, data, to_cspace); if (engine_data) o->engine_data = ENFN->image_data_put(ENC, engine_data, data); @@ -1184,6 +1188,7 @@ evas_object_image_pixels_import(Evas_Object *eo_obj, Evas_Pixel_Import_Source *p Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Image_Data *o; + int load_error; static int warned = 0; if (!warned) @@ -1211,7 +1216,8 @@ evas_object_image_pixels_import(Evas_Object *eo_obj, Evas_Pixel_Import_Source *p o->engine_data, 1, &image_pixels, - &o->load_error); + &load_error); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); /* FIXME: need to actualyl support this */ /* memcpy(image_pixels, pixels->rows, o->cur->image.w * o->cur->image.h * 4);*/ if (o->engine_data) @@ -1232,7 +1238,8 @@ evas_object_image_pixels_import(Evas_Object *eo_obj, Evas_Pixel_Import_Source *p { DATA32 *image_pixels = NULL; - o->engine_data = ENFN->image_data_get(ENC, o->engine_data, 1, &image_pixels,&o->load_error, NULL); + o->engine_data = ENFN->image_data_get(ENC, o->engine_data, 1, &image_pixels, &load_error, NULL); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); if (image_pixels) evas_common_convert_yuv_422p_601_rgba((DATA8 **) pixels->rows, (DATA8 *) image_pixels, o->cur->image.w, o->cur->image.h); if (o->engine_data) diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h index 7c197717a5..230bf5e002 100644 --- a/src/lib/evas/canvas/evas_image_private.h +++ b/src/lib/evas/canvas/evas_image_private.h @@ -111,7 +111,7 @@ struct _Evas_Image_Data void *plane; int pixels_checked_out; - int load_error; + Eina_Error load_error; /* Efl.Gfx.Image.Load_Error */ Efl_Gfx_Image_Scale_Hint scale_hint; Efl_Gfx_Image_Content_Hint content_hint; diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index c38b7e5151..95e7ac4a9b 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -25,6 +25,101 @@ EAPI int lockmax = 0; static int _evas_init_count = 0; int _evas_log_dom_global = -1; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_NONE = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_GENERIC = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_PERMISSION_DENIED = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_CORRUPT_FILE = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_INCOMPATIBLE_FILE = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_COLLECTION = 0; +EAPI Eina_Error EFL_GFX_IMAGE_LOAD_ERROR_RECURSIVE_REFERENCE = 0; + +#define NUM_ERRORS 11 + +const char *efl_gfx_image_load_error_msgs[] = { + "No error on load" , + "A non-specific error occurred" , + "File (or file path) does not exist" , + "Permission denied to an existing file (or path)" , + "Allocation of resources failure prevented load" , + "File corrupt (but was detected as a known format)" , + "File is not a known format" , + "Reading operation has been cancelled during decoding" , + "(Edje only) The file pointed to is incompatible, i.e., it doesn't match the library's current version's format." , + "(Edje only) The group/collection set to load from was not found in the file" , + "(Edje only) The group/collection set to load from had recursive references on its components" +}; + +static void +_efl_gfx_image_load_error_init(void) +{ + Eina_Error *table[] = { + &EFL_GFX_IMAGE_LOAD_ERROR_NONE, + &EFL_GFX_IMAGE_LOAD_ERROR_GENERIC, + &EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST, + &EFL_GFX_IMAGE_LOAD_ERROR_PERMISSION_DENIED, + &EFL_GFX_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED, + &EFL_GFX_IMAGE_LOAD_ERROR_CORRUPT_FILE, + &EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT, + &EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED, + &EFL_GFX_IMAGE_LOAD_ERROR_INCOMPATIBLE_FILE, + &EFL_GFX_IMAGE_LOAD_ERROR_UNKNOWN_COLLECTION, + &EFL_GFX_IMAGE_LOAD_ERROR_RECURSIVE_REFERENCE + }; + unsigned int i; + + if (EFL_GFX_IMAGE_LOAD_ERROR_GENERIC) return; + /* skip EFL_GFX_IMAGE_LOAD_ERROR_NONE: this should always be 0 */ + for (i = 1; i < NUM_ERRORS; i++) + *(table[i]) = eina_error_msg_static_register(efl_gfx_image_load_error_msgs[i]); +#undef TABLE_ENTRY +} + +Eina_Error +_evas_load_error_to_efl_gfx_image_load_error(Evas_Load_Error err) +{ +#define TABLE_ENTRY(NAME) [EVAS_LOAD_ERROR_##NAME] = &EFL_GFX_IMAGE_LOAD_ERROR_##NAME + Eina_Error *table[] = { + TABLE_ENTRY(NONE), + TABLE_ENTRY(GENERIC), + TABLE_ENTRY(DOES_NOT_EXIST), + TABLE_ENTRY(PERMISSION_DENIED), + TABLE_ENTRY(RESOURCE_ALLOCATION_FAILED), + TABLE_ENTRY(CORRUPT_FILE), + TABLE_ENTRY(UNKNOWN_FORMAT), + TABLE_ENTRY(CANCELLED), + //TABLE_ENTRY(INCOMPATIBLE_FILE), + //TABLE_ENTRY(UNKNOWN_COLLECTION), + //TABLE_ENTRY(RECURSIVE_REFERENCE) + }; + if (err > EVAS_LOAD_ERROR_CANCELLED) return err; + return *table[err]; +#undef TABLE_ENTRY +} + +Evas_Load_Error +_efl_gfx_image_load_error_to_evas_load_error(Eina_Error err) +{ + if (err && (err < EFL_GFX_IMAGE_LOAD_ERROR_GENERIC)) return EVAS_LOAD_ERROR_GENERIC; +#define CONVERT_ERR(NAME) if (err == EFL_GFX_IMAGE_LOAD_ERROR_##NAME) return EVAS_LOAD_ERROR_##NAME + CONVERT_ERR(NONE); + CONVERT_ERR(GENERIC); + CONVERT_ERR(DOES_NOT_EXIST); + CONVERT_ERR(PERMISSION_DENIED); + CONVERT_ERR(RESOURCE_ALLOCATION_FAILED); + CONVERT_ERR(CORRUPT_FILE); + CONVERT_ERR(UNKNOWN_FORMAT); + CONVERT_ERR(CANCELLED); + //CONVERT_ERR(INCOMPATIBLE_FILE); + //CONVERT_ERR(UNKNOWN_COLLECTION); + //CONVERT_ERR(RECURSIVE_REFERENCE); + return EVAS_LOAD_ERROR_GENERIC; +} + + EAPI int evas_init(void) { @@ -81,6 +176,8 @@ evas_init(void) _efl_gfx_mapping_init(); evas_focus_init(); + _efl_gfx_image_load_error_init(); + return _evas_init_count; shutdown_filter: diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 1053451ee8..1d0e128dd1 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -283,7 +283,7 @@ _evas_image_init_set(const Eina_File *f, const char *key, } ENFN->image_free(ENC, o->engine_data); } - o->load_error = EVAS_LOAD_ERROR_NONE; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; lo->emile.scale_down_by = o->load_opts->scale_down_by; lo->emile.dpi = o->load_opts->dpi; lo->emile.w = o->load_opts->w; @@ -340,8 +340,8 @@ _evas_image_done_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Dat } else { - if (o->load_error == EVAS_LOAD_ERROR_NONE) - o->load_error = EVAS_LOAD_ERROR_GENERIC; + if (o->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE) + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) { @@ -854,7 +854,7 @@ _efl_canvas_image_internal_efl_gfx_image_ratio_get(const Eo *eo_obj EINA_UNUSED, return (double)o->cur->image.w / (double)o->cur->image.h; } -EOLIAN static Efl_Gfx_Image_Load_Error +EOLIAN static Eina_Error _efl_canvas_image_internal_efl_gfx_image_image_load_error_get(const Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o) { return o->load_error; @@ -1121,7 +1121,7 @@ _evas_image_unload(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Eina_Bo ENFN->image_free(ENC, o->engine_data); } o->engine_data = NULL; - o->load_error = EVAS_LOAD_ERROR_NONE; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) { @@ -1140,6 +1140,7 @@ void _evas_image_load(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o) { Evas_Image_Load_Opts lo; + int load_error = 0; if (o->engine_data) return; @@ -1162,7 +1163,8 @@ _evas_image_load(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Imag lo.emile.orientation = o->load_opts->orientation; lo.emile.degree = 0; lo.skip_head = o->skip_head; - o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &o->load_error, &lo); + o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error); if (o->engine_data) { @@ -1191,7 +1193,7 @@ _evas_image_load(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Imag } else { - o->load_error = EVAS_LOAD_ERROR_GENERIC; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; } } @@ -1230,12 +1232,12 @@ _evas_image_load_post_update(Evas_Object *eo_obj, Evas_Object_Protected_Data *ob //preloading error check if (ENFN->image_load_error_get) - o->load_error = ENFN->image_load_error_get(ENC, o->engine_data); + o->load_error = _evas_load_error_to_efl_gfx_image_load_error(ENFN->image_load_error_get(ENC, o->engine_data)); } else { o->preload = EVAS_IMAGE_PRELOAD_NONE; - o->load_error = EVAS_LOAD_ERROR_GENERIC; + o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; } } diff --git a/src/lib/evas/include/evas_common_private.h b/src/lib/evas/include/evas_common_private.h index 7fe19b7b9a..53c9fef2ec 100644 --- a/src/lib/evas/include/evas_common_private.h +++ b/src/lib/evas/include/evas_common_private.h @@ -636,7 +636,7 @@ struct _Image_Entry int server_id; int connect_num; int channel; - int load_error; + Evas_Load_Error load_error; }; struct _Engine_Image_Entry diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 208f0e1000..1c06b5b9df 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1530,7 +1530,7 @@ struct _Evas_Vg_Load_Func struct _Evas_Vg_Save_Func { - int (*file_save) (Vg_File_Data *vfd, const char *file, const char *key, int compress); + Evas_Load_Error (*file_save) (Vg_File_Data *vfd, const char *file, const char *key, int compress); }; #ifdef __cplusplus @@ -1918,6 +1918,9 @@ extern Eina_Cow *evas_object_image_state_cow; extern Eina_Cow *evas_object_mask_cow; extern Eina_Cow *evas_object_events_cow; +Eina_Error _evas_load_error_to_efl_gfx_image_load_error(Evas_Load_Error err); +Evas_Load_Error _efl_gfx_image_load_error_to_evas_load_error(Eina_Error err); + # define EINA_COW_STATE_WRITE_BEGIN(Obj, Write, State) \ EINA_COW_WRITE_BEGIN(evas_object_state_cow, Obj->State, \ Evas_Object_Protected_State, Write) diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c index e3a5d60529..6022982557 100644 --- a/src/lib/evas/vg/evas_vg_cache.c +++ b/src/lib/evas/vg/evas_vg_cache.c @@ -171,7 +171,7 @@ _vg_file_save(Vg_File_Data *vfd, const char *file, const char *key, const Efl_Fi { Evas_Module *em; Evas_Vg_Save_Func *saver; - int error = EVAS_LOAD_ERROR_GENERIC; + Evas_Load_Error error = EVAS_LOAD_ERROR_GENERIC; int compress = 9; if (!file) return EINA_FALSE; diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index 03f4f1f8c2..c7a854f34d 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -811,8 +811,8 @@ evas_gl_common_image_update(Evas_Engine_GL_Context *gc, Evas_GL_Image *im) evas_cache_image_unload_data(ie); } else if (!im->tex && - ((ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE) || - (ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED))) + ((ie->load_error == EVAS_LOAD_ERROR_NONE) || + (ie->load_error == EVAS_LOAD_ERROR_CANCELLED))) { ie->load_error = evas_cache_image_load_data(ie); im->tex = evas_gl_common_texture_new(gc, im->im, im->disable_atlas); @@ -829,8 +829,8 @@ evas_gl_common_image_update(Evas_Engine_GL_Context *gc, Evas_GL_Image *im) evas_cache_image_unload_data(ie); } else if (!im->tex && - ((ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE) || - (ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED))) + ((ie->load_error == EVAS_LOAD_ERROR_NONE) || + (ie->load_error == EVAS_LOAD_ERROR_CANCELLED))) { ie->load_error = evas_cache_image_load_data(ie); im->tex = evas_gl_common_texture_rgb_a_pair_new(gc, im->im); diff --git a/src/modules/evas/vg_savers/eet/evas_vg_save_eet.c b/src/modules/evas/vg_savers/eet/evas_vg_save_eet.c index 54f35e1127..a7a1bf36ae 100644 --- a/src/modules/evas/vg_savers/eet/evas_vg_save_eet.c +++ b/src/modules/evas/vg_savers/eet/evas_vg_save_eet.c @@ -12,7 +12,7 @@ static int _evas_vg_saver_eet_log_dom = -1; #endif #define INF(...) EINA_LOG_DOM_INFO(_evas_vg_saver_eet_log_dom, __VA_ARGS__) -int +Evas_Load_Error evas_vg_save_file_eet(Vg_File_Data *evg_data, const char *file, const char *key, int compress) { Eet_Data_Descriptor *svg_node_eet; diff --git a/src/modules/evas/vg_savers/svg/evas_vg_save_svg.c b/src/modules/evas/vg_savers/svg/evas_vg_save_svg.c index cf7854d80b..e900432d9a 100644 --- a/src/modules/evas/vg_savers/svg/evas_vg_save_svg.c +++ b/src/modules/evas/vg_savers/svg/evas_vg_save_svg.c @@ -129,7 +129,7 @@ _svg_node_printf(Svg_Node *parent, Eina_Strbuf *buf) } } -int +Evas_Load_Error evas_vg_save_file_svg(Vg_File_Data *evg_data, const char *file, const char *key EINA_UNUSED, int compress EINA_UNUSED) { Eina_Strbuf *buf = NULL; @@ -138,7 +138,7 @@ evas_vg_save_file_svg(Vg_File_Data *evg_data, const char *file, const char *key if (!f) { ERR("Cannot open file '%s' for SVG save", file); - return EFL_GFX_IMAGE_LOAD_ERROR_GENERIC; + return EVAS_LOAD_ERROR_GENERIC; } root = vg_common_svg_create_svg_node(evg_data);