* edje: Use fixed point for tween too.

SVN revision: 46429
This commit is contained in:
Cedric BAIL 2010-02-24 15:37:16 +00:00
parent 41b6529e00
commit fc20b4541e
8 changed files with 26 additions and 26 deletions

View File

@ -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));
}
/**

View File

@ -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 */

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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);

View File

@ -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)