* edje: Use fixed point for tween too.
SVN revision: 46429
This commit is contained in:
parent
41b6529e00
commit
fc20b4541e
|
@ -6599,7 +6599,7 @@ st_collections_group_programs_program_transition(void)
|
|||
"ACCELERATE", EDJE_TWEEN_MODE_ACCELERATE,
|
||||
"DECELERATE", EDJE_TWEEN_MODE_DECELERATE,
|
||||
NULL);
|
||||
ep->tween.time = parse_float_range(1, 0.0, 999999999.0);
|
||||
ep->tween.time = FROM_DOUBLE(parse_float_range(1, 0.0, 999999999.0));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,14 +16,14 @@ static void _edje_part_recalc_single(Edje *ed, Edje_Real_Part *ep, Edje_Part_Des
|
|||
static void _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags);
|
||||
|
||||
void
|
||||
_edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos)
|
||||
_edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos)
|
||||
{
|
||||
FLOAT_T fp_pos;
|
||||
FLOAT_T npos;
|
||||
|
||||
pos = CLAMP(pos, 0.0, 1.0);
|
||||
pos = CLAMP(pos, ZERO, FROM_INT(1));
|
||||
|
||||
fp_pos = FROM_DOUBLE(pos);
|
||||
fp_pos = pos;
|
||||
|
||||
npos = ZERO;
|
||||
/* take linear pos along timescale and use interpolation method */
|
||||
|
|
|
@ -225,7 +225,7 @@ _edje_edd_init(void)
|
|||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "value", value, EET_T_DOUBLE);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "value2", value2, EET_T_DOUBLE);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.mode", tween.mode, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.time", tween.time, EET_T_DOUBLE);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "tween.time", tween.time, EDJE_T_FLOAT);
|
||||
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, "targets", targets, _edje_edd_edje_program_target);
|
||||
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_program, Edje_Program, "after", after, _edje_edd_edje_program_after);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_program, Edje_Program, "api.name", api.name, EET_T_STRING);
|
||||
|
|
|
@ -4950,7 +4950,7 @@ edje_edit_program_add(Evas_Object *obj, const char *name)
|
|||
epr->state2 = NULL;
|
||||
epr->value2 = 0.0;
|
||||
epr->tween.mode = 1;
|
||||
epr->tween.time = 0.0;
|
||||
epr->tween.time = ZERO;
|
||||
epr->targets = NULL;
|
||||
epr->after = NULL;
|
||||
|
||||
|
@ -5383,7 +5383,7 @@ edje_edit_program_transition_time_get(Evas_Object *obj, const char *prog)
|
|||
GET_EPR_OR_RETURN(-1);
|
||||
|
||||
//printf("GET TRANSITION_TIME for program: %s [%.4f]\n", prog, epr->tween.time);
|
||||
return epr->tween.time;
|
||||
return TO_DOUBLE(epr->tween.time);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
|
@ -5392,7 +5392,7 @@ edje_edit_program_transition_time_set(Evas_Object *obj, const char *prog, double
|
|||
GET_EPR_OR_RETURN(0);
|
||||
|
||||
//printf("GET TRANSITION_TIME for program: %s [%.4f]\n", prog, epr->tween.time);
|
||||
epr->tween.time = seconds;
|
||||
epr->tween.time = FROM_DOUBLE(seconds);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -836,7 +836,7 @@ _edje_embryo_fn_set_state(Embryo_Program *ep, Embryo_Cell *params)
|
|||
{
|
||||
if (rp->program) _edje_program_end(ed, rp->program);
|
||||
_edje_part_description_apply(ed, rp, state, value, NULL, 0.0);
|
||||
_edje_part_pos_set(ed, rp, EDJE_TWEEN_MODE_LINEAR, 0.0);
|
||||
_edje_part_pos_set(ed, rp, EDJE_TWEEN_MODE_LINEAR, ZERO);
|
||||
_edje_recalc(ed);
|
||||
}
|
||||
return 0;
|
||||
|
@ -918,7 +918,7 @@ _edje_embryo_fn_set_tween_state(Embryo_Program *ep, Embryo_Cell *params)
|
|||
{
|
||||
if (rp->program) _edje_program_end(ed, rp->program);
|
||||
_edje_part_description_apply(ed, rp, state1, value1, state2, value2);
|
||||
_edje_part_pos_set(ed, rp, EDJE_TWEEN_MODE_LINEAR, tween);
|
||||
_edje_part_pos_set(ed, rp, EDJE_TWEEN_MODE_LINEAR, FROM_DOUBLE(tween));
|
||||
_edje_recalc(ed);
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -3781,7 +3781,7 @@ _edje_lua_part_set_state(lua_State *L)
|
|||
_edje_part_description_apply(obj->ed, obj->rp,
|
||||
luaL_checkstring(L, -2), luaL_checknumber(L, -1),
|
||||
NULL, 0.0);
|
||||
_edje_part_pos_set(obj->ed, obj->rp, EDJE_TWEEN_MODE_LINEAR, 0.0);
|
||||
_edje_part_pos_set(obj->ed, obj->rp, EDJE_TWEEN_MODE_LINEAR, ZERO);
|
||||
_edje_recalc(obj->ed);
|
||||
return 0;
|
||||
}
|
||||
|
@ -3800,7 +3800,7 @@ _edje_lua_part_set_tween_state(lua_State *L)
|
|||
luaL_checkstring(L, -4), luaL_checknumber(L, -3),
|
||||
luaL_checkstring(L, -2), luaL_checknumber(L, -1));
|
||||
_edje_part_pos_set(obj->ed, obj->rp, EDJE_TWEEN_MODE_LINEAR,
|
||||
luaL_checknumber(L, -5));
|
||||
FROM_DOUBLE(luaL_checknumber(L, -5)));
|
||||
_edje_recalc(obj->ed);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -434,7 +434,7 @@ struct _Edje_Program /* a conditional program to be run */
|
|||
|
||||
struct {
|
||||
int mode; /* how to tween - linear, sinusoidal etc. */
|
||||
double time; /* time to graduate between current and new state */
|
||||
FLOAT_T time; /* time to graduate between current and new state */
|
||||
} tween;
|
||||
|
||||
Eina_List *targets; /* list of target parts to apply the state to */
|
||||
|
@ -1211,7 +1211,7 @@ extern Eina_List *_edje_freeze_calc_list;
|
|||
extern Eina_Mempool *_edje_real_part_mp;
|
||||
extern Eina_Mempool *_edje_real_part_state_mp;
|
||||
|
||||
void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, double pos);
|
||||
void _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos);
|
||||
Edje_Part_Description *_edje_part_description_find(Edje *ed, Edje_Real_Part *rp, const char *name, double val);
|
||||
void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, double v1, const char *d2, double v2);
|
||||
void _edje_recalc(Edje *ed);
|
||||
|
|
|
@ -379,7 +379,7 @@ edje_object_animation_set(Evas_Object *obj, int on)
|
|||
|
||||
runp = eina_list_data_get(newl);
|
||||
newl = eina_list_remove(newl, eina_list_data_get(newl));
|
||||
_edje_program_run_iterate(runp, runp->start_time + runp->program->tween.time);
|
||||
_edje_program_run_iterate(runp, runp->start_time + TO_DOUBLE(runp->program->tween.time));
|
||||
if (_edje_block_break(ed))
|
||||
{
|
||||
eina_list_free(newl);
|
||||
|
@ -440,7 +440,7 @@ edje_object_animation_get(const Evas_Object *obj)
|
|||
int
|
||||
_edje_program_run_iterate(Edje_Running_Program *runp, double tim)
|
||||
{
|
||||
double t, total;
|
||||
FLOAT_T t, total;
|
||||
Eina_List *l;
|
||||
Edje *ed;
|
||||
Edje_Program_Target *pt;
|
||||
|
@ -451,10 +451,10 @@ _edje_program_run_iterate(Edje_Running_Program *runp, double tim)
|
|||
_edje_block(ed);
|
||||
_edje_ref(ed);
|
||||
_edje_freeze(ed);
|
||||
t = tim - runp->start_time;
|
||||
t = FROM_DOUBLE(tim - runp->start_time);
|
||||
total = runp->program->tween.time;
|
||||
t /= total;
|
||||
if (t > 1.0) t = 1.0;
|
||||
t = DIV(t, total);
|
||||
if (t > FROM_INT(1)) t = FROM_INT(1);
|
||||
EINA_LIST_FOREACH(runp->program->targets, l, pt)
|
||||
{
|
||||
if (pt->id >= 0)
|
||||
|
@ -464,7 +464,7 @@ _edje_program_run_iterate(Edje_Running_Program *runp, double tim)
|
|||
runp->program->tween.mode, t);
|
||||
}
|
||||
}
|
||||
if (t >= 1.0)
|
||||
if (t >= FROM_INT(1))
|
||||
{
|
||||
Edje_Program_After *pa;
|
||||
|
||||
|
@ -481,7 +481,7 @@ _edje_program_run_iterate(Edje_Running_Program *runp, double tim)
|
|||
NULL,
|
||||
0.0);
|
||||
_edje_part_pos_set(ed, rp,
|
||||
runp->program->tween.mode, 0.0);
|
||||
runp->program->tween.mode, ZERO);
|
||||
rp->program = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ _edje_program_end(Edje *ed, Edje_Running_Program *runp)
|
|||
NULL,
|
||||
0.0);
|
||||
_edje_part_pos_set(ed, rp,
|
||||
runp->program->tween.mode, 0.0);
|
||||
runp->program->tween.mode, ZERO);
|
||||
rp->program = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -626,7 +626,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const
|
|||
_edje_freeze(ed);
|
||||
if (pr->action == EDJE_ACTION_TYPE_STATE_SET)
|
||||
{
|
||||
if ((pr->tween.time > 0.0) && (!ed->no_anim))
|
||||
if ((pr->tween.time > ZERO) && (!ed->no_anim))
|
||||
{
|
||||
Edje_Running_Program *runp;
|
||||
|
||||
|
@ -645,7 +645,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const
|
|||
rp->param1.description->state.value,
|
||||
pr->state,
|
||||
pr->value);
|
||||
_edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
|
||||
_edje_part_pos_set(ed, rp, pr->tween.mode, ZERO);
|
||||
rp->program = runp;
|
||||
}
|
||||
}
|
||||
|
@ -682,7 +682,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const
|
|||
pr->value,
|
||||
NULL,
|
||||
0.0);
|
||||
_edje_part_pos_set(ed, rp, pr->tween.mode, 0.0);
|
||||
_edje_part_pos_set(ed, rp, pr->tween.mode, ZERO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -948,7 +948,7 @@ _edje_program_run(Edje *ed, Edje_Program *pr, int force, const char *ssig, const
|
|||
}
|
||||
if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET)
|
||||
/* hmm this fucks somethgin up. must look into it later */
|
||||
/* && (pr->tween.time > 0.0) && (!ed->no_anim))) */
|
||||
/* && (pr->tween.time > ZERO) && (!ed->no_anim))) */
|
||||
))
|
||||
{
|
||||
EINA_LIST_FOREACH(pr->after, l, pa)
|
||||
|
|
Loading…
Reference in New Issue