forked from enlightenment/efl
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
This commit is contained in:
parent
c388e853f8
commit
6b046ec845
|
@ -171,7 +171,7 @@ _efl_canvas_layout_efl_file_group_get(Eo *obj EINA_UNUSED, Edje *ed)
|
||||||
return ed->group;
|
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)
|
_efl_canvas_layout_layout_load_error_get(const Eo *obj EINA_UNUSED, Edje *ed)
|
||||||
{
|
{
|
||||||
switch (ed->load_error)
|
switch (ed->load_error)
|
||||||
|
|
|
@ -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.]]
|
[[Gets the (last) file loading error for a given object.]]
|
||||||
}
|
}
|
||||||
values {
|
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 {
|
content_remove {
|
||||||
|
|
|
@ -208,7 +208,7 @@ interface @beta Efl.Gfx.Image
|
||||||
[[Gets the (last) file loading error for a given object.]]
|
[[Gets the (last) file loading error for a given object.]]
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
error: Efl.Gfx.Image_Load_Error(Efl.Gfx.Image_Load_Error.none); [[The load error code.]]
|
error: Eina.Error; [[The load error code.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,6 +180,6 @@ interface @beta Efl.Gfx.Image_Load_Controller
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
load,done: void; [[Called when he image was loaded]]
|
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]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,22 +188,6 @@ enum Efl.Gfx.Hint_Aspect
|
||||||
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 {
|
enum Efl.Gfx.Color_Class_Layer {
|
||||||
[[Efl Gfx Color Class layer enum]]
|
[[Efl Gfx Color Class layer enum]]
|
||||||
normal = 0, [[Default color]]
|
normal = 0, [[Default color]]
|
||||||
|
@ -212,3 +196,15 @@ enum Efl.Gfx.Color_Class_Layer {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Efl.Font.Size: int; [[Efl font size type]]
|
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]]
|
||||||
|
|
|
@ -12,6 +12,7 @@ _evas_image_file_load(Eo *eo_obj)
|
||||||
Evas_Image_Load_Opts lo;
|
Evas_Image_Load_Opts lo;
|
||||||
const Eina_File *f = efl_file_mmap_get(eo_obj);
|
const Eina_File *f = efl_file_mmap_get(eo_obj);
|
||||||
const char *key = efl_file_key_get(eo_obj);
|
const char *key = efl_file_key_get(eo_obj);
|
||||||
|
int load_error;
|
||||||
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(f, EINA_FALSE);
|
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);
|
obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||||
evas_object_async_block(obj);
|
evas_object_async_block(obj);
|
||||||
_evas_image_init_set(f, key, eo_obj, obj, o, &lo);
|
_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;
|
o->buffer_data_set = EINA_FALSE;
|
||||||
_evas_image_done_set(eo_obj, obj, o);
|
_evas_image_done_set(eo_obj, obj, o);
|
||||||
o->file_size.w = o->cur->image.w;
|
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))
|
(root))
|
||||||
{
|
{
|
||||||
Efl_Dbg_Info *group = EFL_DBG_INFO_LIST_APPEND(root, MY_CLASS_NAME);
|
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,
|
EFL_DBG_INFO_APPEND(group, "Load Error", EINA_VALUE_TYPE_STRING,
|
||||||
evas_load_error_str(error));
|
eina_error_msg_get(error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
|
||||||
state_write->source = eo_src;
|
state_write->source = eo_src;
|
||||||
EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
|
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;
|
o->proxyerror = 0;
|
||||||
|
|
||||||
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
|
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
|
||||||
|
|
|
@ -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_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_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
|
||||||
Evas_Image_Load_Opts lo;
|
Evas_Image_Load_Opts lo;
|
||||||
|
int load_error;
|
||||||
|
|
||||||
if (o->cur->scene == scene) return;
|
if (o->cur->scene == scene) return;
|
||||||
|
|
||||||
evas_object_async_block(obj);
|
evas_object_async_block(obj);
|
||||||
_evas_image_init_set(NULL, NULL, eo_obj, obj, o, &lo);
|
_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);
|
_evas_image_done_set(eo_obj, obj, o);
|
||||||
|
|
||||||
if (scene) _evas_image_3d_set(eo_obj, scene);
|
if (scene) _evas_image_3d_set(eo_obj, scene);
|
||||||
|
|
|
@ -393,7 +393,7 @@ EAPI Evas_Load_Error
|
||||||
evas_object_image_load_error_get(const Evas_Object *obj)
|
evas_object_image_load_error_get(const Evas_Object *obj)
|
||||||
{
|
{
|
||||||
EVAS_IMAGE_API(obj, EVAS_LOAD_ERROR_GENERIC);
|
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
|
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);
|
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;
|
o->changed = EINA_TRUE;
|
||||||
evas_object_change(eo_obj, obj);
|
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))
|
if ((o->cur->image.w != 0) || (o->cur->image.h != 0))
|
||||||
resize_call = EINA_TRUE;
|
resize_call = EINA_TRUE;
|
||||||
|
|
||||||
|
@ -718,6 +718,7 @@ evas_object_image_data_get(const Eo *eo_obj, Eina_Bool for_writing)
|
||||||
void *pixels = NULL;
|
void *pixels = NULL;
|
||||||
int stride = 0;
|
int stride = 0;
|
||||||
DATA32 *data;
|
DATA32 *data;
|
||||||
|
int load_error;
|
||||||
|
|
||||||
if (!o->engine_data) return NULL;
|
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);
|
ENFN->image_scale_hint_set(ENC, o->engine_data, o->scale_hint);
|
||||||
if (ENFN->image_content_hint_set)
|
if (ENFN->image_content_hint_set)
|
||||||
ENFN->image_content_hint_set(ENC, o->engine_data, o->content_hint);
|
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 we fail to get engine_data, we have to return NULL */
|
||||||
if (!pixels || !data) goto error;
|
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;
|
void *engine_data;
|
||||||
DATA32 *data;
|
DATA32 *data;
|
||||||
void* result = NULL;
|
void* result = NULL;
|
||||||
|
int load_error;
|
||||||
|
|
||||||
static int warned = 0;
|
static int warned = 0;
|
||||||
if (!warned)
|
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);
|
ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_TRUE);
|
||||||
}
|
}
|
||||||
data = NULL;
|
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);
|
result = _evas_image_data_convert_internal(o, data, to_cspace);
|
||||||
if (engine_data)
|
if (engine_data)
|
||||||
o->engine_data = ENFN->image_data_put(ENC, engine_data, 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_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||||
Evas_Image_Data *o;
|
Evas_Image_Data *o;
|
||||||
|
int load_error;
|
||||||
|
|
||||||
static int warned = 0;
|
static int warned = 0;
|
||||||
if (!warned)
|
if (!warned)
|
||||||
|
@ -1211,7 +1216,8 @@ evas_object_image_pixels_import(Evas_Object *eo_obj, Evas_Pixel_Import_Source *p
|
||||||
o->engine_data,
|
o->engine_data,
|
||||||
1,
|
1,
|
||||||
&image_pixels,
|
&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 */
|
/* FIXME: need to actualyl support this */
|
||||||
/* memcpy(image_pixels, pixels->rows, o->cur->image.w * o->cur->image.h * 4);*/
|
/* memcpy(image_pixels, pixels->rows, o->cur->image.w * o->cur->image.h * 4);*/
|
||||||
if (o->engine_data)
|
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;
|
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)
|
if (image_pixels)
|
||||||
evas_common_convert_yuv_422p_601_rgba((DATA8 **) pixels->rows, (DATA8 *) image_pixels, o->cur->image.w, o->cur->image.h);
|
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)
|
if (o->engine_data)
|
||||||
|
|
|
@ -111,7 +111,7 @@ struct _Evas_Image_Data
|
||||||
void *plane;
|
void *plane;
|
||||||
|
|
||||||
int pixels_checked_out;
|
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_Scale_Hint scale_hint;
|
||||||
Efl_Gfx_Image_Content_Hint content_hint;
|
Efl_Gfx_Image_Content_Hint content_hint;
|
||||||
|
|
|
@ -25,6 +25,101 @@ EAPI int lockmax = 0;
|
||||||
static int _evas_init_count = 0;
|
static int _evas_init_count = 0;
|
||||||
int _evas_log_dom_global = -1;
|
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
|
EAPI int
|
||||||
evas_init(void)
|
evas_init(void)
|
||||||
{
|
{
|
||||||
|
@ -81,6 +176,8 @@ evas_init(void)
|
||||||
_efl_gfx_mapping_init();
|
_efl_gfx_mapping_init();
|
||||||
evas_focus_init();
|
evas_focus_init();
|
||||||
|
|
||||||
|
_efl_gfx_image_load_error_init();
|
||||||
|
|
||||||
return _evas_init_count;
|
return _evas_init_count;
|
||||||
|
|
||||||
shutdown_filter:
|
shutdown_filter:
|
||||||
|
|
|
@ -283,7 +283,7 @@ _evas_image_init_set(const Eina_File *f, const char *key,
|
||||||
}
|
}
|
||||||
ENFN->image_free(ENC, o->engine_data);
|
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.scale_down_by = o->load_opts->scale_down_by;
|
||||||
lo->emile.dpi = o->load_opts->dpi;
|
lo->emile.dpi = o->load_opts->dpi;
|
||||||
lo->emile.w = o->load_opts->w;
|
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
|
else
|
||||||
{
|
{
|
||||||
if (o->load_error == EVAS_LOAD_ERROR_NONE)
|
if (o->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE)
|
||||||
o->load_error = EVAS_LOAD_ERROR_GENERIC;
|
o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
|
||||||
|
|
||||||
EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
|
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;
|
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)
|
_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;
|
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);
|
ENFN->image_free(ENC, o->engine_data);
|
||||||
}
|
}
|
||||||
o->engine_data = NULL;
|
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)
|
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(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o)
|
||||||
{
|
{
|
||||||
Evas_Image_Load_Opts lo;
|
Evas_Image_Load_Opts lo;
|
||||||
|
int load_error = 0;
|
||||||
|
|
||||||
if (o->engine_data) return;
|
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.orientation = o->load_opts->orientation;
|
||||||
lo.emile.degree = 0;
|
lo.emile.degree = 0;
|
||||||
lo.skip_head = o->skip_head;
|
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)
|
if (o->engine_data)
|
||||||
{
|
{
|
||||||
|
@ -1191,7 +1193,7 @@ _evas_image_load(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Imag
|
||||||
}
|
}
|
||||||
else
|
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
|
//preloading error check
|
||||||
if (ENFN->image_load_error_get)
|
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
|
else
|
||||||
{
|
{
|
||||||
o->preload = EVAS_IMAGE_PRELOAD_NONE;
|
o->preload = EVAS_IMAGE_PRELOAD_NONE;
|
||||||
o->load_error = EVAS_LOAD_ERROR_GENERIC;
|
o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_GENERIC;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -636,7 +636,7 @@ struct _Image_Entry
|
||||||
int server_id;
|
int server_id;
|
||||||
int connect_num;
|
int connect_num;
|
||||||
int channel;
|
int channel;
|
||||||
int load_error;
|
Evas_Load_Error load_error;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Engine_Image_Entry
|
struct _Engine_Image_Entry
|
||||||
|
|
|
@ -1530,7 +1530,7 @@ struct _Evas_Vg_Load_Func
|
||||||
|
|
||||||
struct _Evas_Vg_Save_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
|
#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_mask_cow;
|
||||||
extern Eina_Cow *evas_object_events_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) \
|
# define EINA_COW_STATE_WRITE_BEGIN(Obj, Write, State) \
|
||||||
EINA_COW_WRITE_BEGIN(evas_object_state_cow, Obj->State, \
|
EINA_COW_WRITE_BEGIN(evas_object_state_cow, Obj->State, \
|
||||||
Evas_Object_Protected_State, Write)
|
Evas_Object_Protected_State, Write)
|
||||||
|
|
|
@ -171,7 +171,7 @@ _vg_file_save(Vg_File_Data *vfd, const char *file, const char *key, const Efl_Fi
|
||||||
{
|
{
|
||||||
Evas_Module *em;
|
Evas_Module *em;
|
||||||
Evas_Vg_Save_Func *saver;
|
Evas_Vg_Save_Func *saver;
|
||||||
int error = EVAS_LOAD_ERROR_GENERIC;
|
Evas_Load_Error error = EVAS_LOAD_ERROR_GENERIC;
|
||||||
int compress = 9;
|
int compress = 9;
|
||||||
|
|
||||||
if (!file) return EINA_FALSE;
|
if (!file) return EINA_FALSE;
|
||||||
|
|
|
@ -811,8 +811,8 @@ evas_gl_common_image_update(Evas_Engine_GL_Context *gc, Evas_GL_Image *im)
|
||||||
evas_cache_image_unload_data(ie);
|
evas_cache_image_unload_data(ie);
|
||||||
}
|
}
|
||||||
else if (!im->tex &&
|
else if (!im->tex &&
|
||||||
((ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE) ||
|
((ie->load_error == EVAS_LOAD_ERROR_NONE) ||
|
||||||
(ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED)))
|
(ie->load_error == EVAS_LOAD_ERROR_CANCELLED)))
|
||||||
{
|
{
|
||||||
ie->load_error = evas_cache_image_load_data(ie);
|
ie->load_error = evas_cache_image_load_data(ie);
|
||||||
im->tex = evas_gl_common_texture_new(gc, im->im, im->disable_atlas);
|
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);
|
evas_cache_image_unload_data(ie);
|
||||||
}
|
}
|
||||||
else if (!im->tex &&
|
else if (!im->tex &&
|
||||||
((ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_NONE) ||
|
((ie->load_error == EVAS_LOAD_ERROR_NONE) ||
|
||||||
(ie->load_error == EFL_GFX_IMAGE_LOAD_ERROR_CANCELLED)))
|
(ie->load_error == EVAS_LOAD_ERROR_CANCELLED)))
|
||||||
{
|
{
|
||||||
ie->load_error = evas_cache_image_load_data(ie);
|
ie->load_error = evas_cache_image_load_data(ie);
|
||||||
im->tex = evas_gl_common_texture_rgb_a_pair_new(gc, im->im);
|
im->tex = evas_gl_common_texture_rgb_a_pair_new(gc, im->im);
|
||||||
|
|
|
@ -12,7 +12,7 @@ static int _evas_vg_saver_eet_log_dom = -1;
|
||||||
#endif
|
#endif
|
||||||
#define INF(...) EINA_LOG_DOM_INFO(_evas_vg_saver_eet_log_dom, __VA_ARGS__)
|
#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)
|
evas_vg_save_file_eet(Vg_File_Data *evg_data, const char *file, const char *key, int compress)
|
||||||
{
|
{
|
||||||
Eet_Data_Descriptor *svg_node_eet;
|
Eet_Data_Descriptor *svg_node_eet;
|
||||||
|
|
|
@ -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)
|
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;
|
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)
|
if (!f)
|
||||||
{
|
{
|
||||||
ERR("Cannot open file '%s' for SVG save", file);
|
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);
|
root = vg_common_svg_create_svg_node(evg_data);
|
||||||
|
|
Loading…
Reference in New Issue