Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2019-11-22 11:54:37 +09:00
commit f62bfa2465
5 changed files with 32 additions and 13 deletions

View File

@ -551,8 +551,8 @@ eina_matrix3_rotate(Eina_Matrix3 *m, double rad)
* Later we would want someone to look at this and improve accuracy.
*/
#if 1
c = cosf(rad);
s = sinf(rad);
c = cos(rad);
s = sin(rad);
#else
/* normalize the angle between -pi,pi */
rad = fmod(rad + M_PI, 2 * M_PI) - M_PI;

View File

@ -238,6 +238,8 @@ static void
_sizing_eval(void *data)
{
Evas_Object *obj = data;
Elm_Object_Item *eo_item;
const Eina_List *l;
const char *max_size_str;
int max_size = 0;
char buf[128];
@ -255,6 +257,12 @@ _sizing_eval(void *data)
elm_layout_signal_emit(sd->hover, "elm,state,align,default", "elm");
edje_object_message_signal_process(elm_layout_edje_get(sd->hover));
EINA_LIST_FOREACH(sd->items, l, eo_item)
{
ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
efl_canvas_group_calculate(VIEW(item));
}
elm_box_recalculate(sd->bx);
evas_object_size_hint_combined_min_get(sd->bx, &box_w, &box_h);
@ -501,7 +509,6 @@ _activate(Evas_Object *obj)
{
ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
evas_object_show(VIEW(item));
efl_canvas_group_calculate(VIEW(item));
elm_box_pack_end(sd->bx, VIEW(item));
}

View File

@ -59,7 +59,11 @@ _animator_cb(void *data, const Efl_Event *ev EINA_UNUSED)
efl_gfx_mapping_reset(obj);
efl_animation_apply(pd->in->animation, pd->in->progress, obj);
efl_event_callback_call(obj, EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, &pd->in->progress);
double progress = pd->in->progress;
efl_event_callback_call(obj, EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, &progress);
//Check if animation stopped in animation_progress,updated callback.
if (!pd->in) return;
//Not end. Keep going.
if ((pd->in->speed < 0 && EINA_DBL_EQ(pd->in->progress, 0)) ||
@ -103,6 +107,7 @@ static Eina_Value
_start_fcb(Eo *o, void *data EINA_UNUSED, const Eina_Value v)
{
Efl_Canvas_Object_Animation_Data *pd = efl_data_scope_safe_get(o, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN_VAL(pd, EINA_VALUE_EMPTY);
if (!pd->in) return v; //animation was stopped before anything started
_start(o, pd, pd->in->start_pos);
return v;
@ -166,6 +171,8 @@ _efl_canvas_object_animation_animation_start(Eo *obj, Efl_Canvas_Object_Animatio
in->speed = speed;
in->start_pos = start_pos;
efl_event_callback_call(obj, EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, in->animation);
//You should not rely on in beeing available after calling the above event.
in = NULL;
if (efl_animation_start_delay_get(animation) > 0.0)
{
@ -190,7 +197,9 @@ _efl_canvas_object_animation_animation_stop(Eo *obj, Efl_Canvas_Object_Animation
efl_event_callback_call(obj, EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_CHANGED, pd->in->animation);
free(pd->in);
//this could be NULL if some weird callstack calls stop again while the above event is executed
if (pd->in)
free(pd->in);
pd->in = NULL;
}

View File

@ -20,14 +20,17 @@ evas_vg_load_file_close_json(Vg_File_Data *vfd)
Lottie_Animation *lot_anim = (Lottie_Animation *) vfd->loader_data;
lottie_animation_destroy(lot_anim);
if (vfd->anim_data->markers)
if (vfd->anim_data)
{
Vg_File_Anim_Data_Marker *marker;
EINA_INARRAY_FOREACH(vfd->anim_data->markers, marker)
if (marker->name) eina_stringshare_del(marker->name);
eina_inarray_free(vfd->anim_data->markers);
if (vfd->anim_data->markers)
{
Vg_File_Anim_Data_Marker *marker;
EINA_INARRAY_FOREACH(vfd->anim_data->markers, marker)
if (marker->name) eina_stringshare_del(marker->name);
eina_inarray_free(vfd->anim_data->markers);
}
free(vfd->anim_data);
}
if (vfd->anim_data) free(vfd->anim_data);
if (vfd->root) efl_unref(vfd->root);
free(vfd);

View File

@ -463,8 +463,8 @@ EFL_START_TEST(eina_matrix3_operations)
fail_if (!MATRIX3_CMP(m1.xx, m1.xy, m1.xz,
m1.yx, m1.yy, m1.yz,
m1.zx, m1.zy, m1.zz,
cosf(rotate_radian), -sinf(rotate_radian), 0,
sinf(rotate_radian), cosf(rotate_radian), 0,
cos(rotate_radian), -sin(rotate_radian), 0,
sin(rotate_radian), cos(rotate_radian), 0,
0, 0, 1));
eina_matrix3_values_set(&m1,