forked from enlightenment/efl
Evas: Merge evas_object_image changes from Tizen to upstream EFL.
SVN revision: 73198
This commit is contained in:
parent
382c380bb2
commit
8689cb87a0
|
@ -860,6 +860,7 @@ evas_object_image_data_convert(Evas_Object *obj, Evas_Colorspace to_cspace)
|
||||||
{
|
{
|
||||||
Evas_Object_Image *o;
|
Evas_Object_Image *o;
|
||||||
DATA32 *data;
|
DATA32 *data;
|
||||||
|
void* result = NULL;
|
||||||
|
|
||||||
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -880,14 +881,20 @@ evas_object_image_data_convert(Evas_Object *obj, Evas_Colorspace to_cspace)
|
||||||
o->video.update_pixels(o->video.data, obj, &o->video);
|
o->video.update_pixels(o->video.data, obj, &o->video);
|
||||||
if (o->cur.cspace == to_cspace) return NULL;
|
if (o->cur.cspace == to_cspace) return NULL;
|
||||||
data = NULL;
|
data = NULL;
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
|
o->engine_data =
|
||||||
o->engine_data,
|
obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
|
||||||
0,
|
o->engine_data, 0, &data,
|
||||||
&data,
|
&o->load_error);
|
||||||
&o->load_error);
|
result = evas_object_image_data_convert_internal(o, data, to_cspace);
|
||||||
return evas_object_image_data_convert_internal(o, data, to_cspace);
|
if (o->engine_data)
|
||||||
}
|
{
|
||||||
|
o->engine_data =
|
||||||
|
obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
|
||||||
|
o->engine_data, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
EAPI void
|
EAPI void
|
||||||
evas_object_image_data_set(Evas_Object *obj, void *data)
|
evas_object_image_data_set(Evas_Object *obj, void *data)
|
||||||
{
|
{
|
||||||
|
@ -906,16 +913,22 @@ evas_object_image_data_set(Evas_Object *obj, void *data)
|
||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
if (o->engine_data)
|
if (o->engine_data)
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
|
{
|
||||||
o->engine_data,
|
o->engine_data =
|
||||||
data);
|
obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
|
||||||
|
o->engine_data,
|
||||||
|
data);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_new_from_data(obj->layer->evas->engine.data.output,
|
{
|
||||||
o->cur.image.w,
|
o->engine_data =
|
||||||
o->cur.image.h,
|
obj->layer->evas->engine.func->image_new_from_data(obj->layer->evas->engine.data.output,
|
||||||
data,
|
o->cur.image.w,
|
||||||
o->cur.has_alpha,
|
o->cur.image.h,
|
||||||
o->cur.cspace);
|
data,
|
||||||
|
o->cur.has_alpha,
|
||||||
|
o->cur.cspace);
|
||||||
|
}
|
||||||
if (o->engine_data)
|
if (o->engine_data)
|
||||||
{
|
{
|
||||||
int stride = 0;
|
int stride = 0;
|
||||||
|
@ -988,11 +1001,11 @@ evas_object_image_data_get(const Evas_Object *obj, Eina_Bool for_writing)
|
||||||
obj->layer->evas->engine.func->image_content_hint_set
|
obj->layer->evas->engine.func->image_content_hint_set
|
||||||
(obj->layer->evas->engine.data.output,
|
(obj->layer->evas->engine.data.output,
|
||||||
o->engine_data, o->content_hint);
|
o->engine_data, o->content_hint);
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
|
o->engine_data =
|
||||||
o->engine_data,
|
obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
|
||||||
for_writing,
|
o->engine_data,
|
||||||
&data,
|
for_writing, &data,
|
||||||
&o->load_error);
|
&o->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 (!o->engine_data) return NULL;
|
if (!o->engine_data) return NULL;
|
||||||
|
@ -1079,19 +1092,21 @@ evas_object_image_data_copy_set(Evas_Object *obj, void *data)
|
||||||
if (o->engine_data)
|
if (o->engine_data)
|
||||||
obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output,
|
obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output,
|
||||||
o->engine_data);
|
o->engine_data);
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output,
|
o->engine_data =
|
||||||
o->cur.image.w,
|
obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output,
|
||||||
o->cur.image.h,
|
o->cur.image.w,
|
||||||
data,
|
o->cur.image.h,
|
||||||
o->cur.has_alpha,
|
data,
|
||||||
o->cur.cspace);
|
o->cur.has_alpha,
|
||||||
|
o->cur.cspace);
|
||||||
if (o->engine_data)
|
if (o->engine_data)
|
||||||
{
|
{
|
||||||
int stride = 0;
|
int stride = 0;
|
||||||
|
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
|
o->engine_data =
|
||||||
o->engine_data,
|
obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
|
||||||
o->cur.has_alpha);
|
o->engine_data,
|
||||||
|
o->cur.has_alpha);
|
||||||
if (obj->layer->evas->engine.func->image_scale_hint_set)
|
if (obj->layer->evas->engine.func->image_scale_hint_set)
|
||||||
obj->layer->evas->engine.func->image_scale_hint_set
|
obj->layer->evas->engine.func->image_scale_hint_set
|
||||||
(obj->layer->evas->engine.data.output,
|
(obj->layer->evas->engine.data.output,
|
||||||
|
@ -1160,9 +1175,10 @@ evas_object_image_alpha_set(Evas_Object *obj, Eina_Bool has_alpha)
|
||||||
{
|
{
|
||||||
int stride = 0;
|
int stride = 0;
|
||||||
|
|
||||||
o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
|
o->engine_data =
|
||||||
o->engine_data,
|
obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output,
|
||||||
o->cur.has_alpha);
|
o->engine_data,
|
||||||
|
o->cur.has_alpha);
|
||||||
if (obj->layer->evas->engine.func->image_scale_hint_set)
|
if (obj->layer->evas->engine.func->image_scale_hint_set)
|
||||||
obj->layer->evas->engine.func->image_scale_hint_set
|
obj->layer->evas->engine.func->image_scale_hint_set
|
||||||
(obj->layer->evas->engine.data.output,
|
(obj->layer->evas->engine.data.output,
|
||||||
|
@ -1330,6 +1346,9 @@ evas_object_image_save(const Evas_Object *obj, const char *file, const char *key
|
||||||
|
|
||||||
evas_cache_image_drop(&im->cache_entry);
|
evas_cache_image_drop(&im->cache_entry);
|
||||||
}
|
}
|
||||||
|
o->engine_data = obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
|
||||||
|
o->engine_data,
|
||||||
|
data);
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3591,6 +3610,7 @@ evas_object_image_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
DATA32 *data;
|
DATA32 *data;
|
||||||
int w, h, stride, iw, ih;
|
int w, h, stride, iw, ih;
|
||||||
int a;
|
int a;
|
||||||
|
int return_value;
|
||||||
|
|
||||||
o = (Evas_Object_Image *)(obj->object_data);
|
o = (Evas_Object_Image *)(obj->object_data);
|
||||||
|
|
||||||
|
@ -3694,8 +3714,12 @@ evas_object_image_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
0,
|
0,
|
||||||
&data,
|
&data,
|
||||||
&o->load_error);
|
&o->load_error);
|
||||||
|
|
||||||
if (!data)
|
if (!data)
|
||||||
return 0;
|
{
|
||||||
|
return_value = 0;
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
switch (o->cur.cspace)
|
switch (o->cur.cspace)
|
||||||
{
|
{
|
||||||
|
@ -3709,11 +3733,20 @@ evas_object_image_is_inside(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
a = (*((DATA8*)(data))) & 0x1f;
|
a = (*((DATA8*)(data))) & 0x1f;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return 1;
|
return_value = 1;
|
||||||
|
goto finish;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (a != 0);
|
return_value = (a != 0);
|
||||||
|
goto finish;
|
||||||
|
|
||||||
|
finish:
|
||||||
|
|
||||||
|
obj->layer->evas->engine.func->image_data_put(obj->layer->evas->engine.data.output,
|
||||||
|
o->engine_data,
|
||||||
|
data);
|
||||||
|
return return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue