Yeap it would be hard to figure out what was going on from the commit messages. Both commits (abandoned and reverted) could solve the incorrect calculation problem which is too hard to reproduce on my desktop. It might be possible to get what the incorrect calculation from the attached file EdjeCalc_Round.osd of D8665. I had a discussion with @hermet regarding this and finally made a decision to revert it .
Sincerely Shinwoo Kim 2019년 4월 19일 (금) 오후 11:22, Mike Blumenkrantz <[email protected]>님이 작성: > Hi, > > I don't think there is a point in submitting patches for review if you're > going to then land them without review 20 minutes later? Also, in this case > you've cited another patch that you submitted for review--but this > referenced patch has been abandoned? > > I'm not sure what's going on here, but this doesn't seem like a very > effective workflow for you or the community. > > > Regards, > Mike > > On Fri, Apr 19, 2019 at 4:25 AM Shinwoo Kim <[email protected]> wrote: > > > kimcinoo pushed a commit to branch master. > > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id=e9b2e3c6c3a5b31c03557afbcdc59393c148f6fd > > > > commit e9b2e3c6c3a5b31c03557afbcdc59393c148f6fd > > Author: Shinwoo Kim <[email protected]> > > Date: Fri Apr 19 17:18:26 2019 +0900 > > > > Revert "edje_calc: make INTP use TO_INT_ROUND" > > > > Summary: > > This reverts commit be00af9bc3d534ede3965693618684fe38fd8786 which > has > > incorrect calculation. For more information please refer to: > > > > https://phab.enlightenment.org/D8665 > > > > Reviewers: Hermet > > > > Subscribers: cedric, #reviewers, #committers > > > > Tags: #efl > > > > Differential Revision: https://phab.enlightenment.org/D8666 > > --- > > src/lib/edje/edje_calc.c | 35 +++++++++-------------------------- > > src/lib/edje/edje_private.h | 6 ++---- > > 2 files changed, 11 insertions(+), 30 deletions(-) > > > > diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c > > index 3e3bf29850..ffb46c075b 100644 > > --- a/src/lib/edje/edje_calc.c > > +++ b/src/lib/edje/edje_calc.c > > @@ -2397,29 +2397,12 @@ _edje_filter_get(Edje *ed, > > Edje_Part_Description_Spec_Filter *filter) > > static void > > _edje_part_pixel_adjust(Edje *ed, > > Edje_Real_Part *ep, > > - Edje_Calc_Params *params, > > - Eina_Bool round) > > + Edje_Calc_Params *params) > > { > > - int xw, yh, fxw, fyh; > > - > > - xw = ABS(params->final.x) + params->final.w; > > - yh = ABS(params->final.y) + params->final.h; > > - > > - if (round) > > - { > > - fxw = TO_INT_ROUND(ADD(ABS(params->eval.x), params->eval.w)); > > - fyh = TO_INT_ROUND(ADD(ABS(params->eval.y), params->eval.h)); > > - } > > - else > > - { > > - fxw = TO_INT(ADD(ABS(params->eval.x), params->eval.w)); > > - fyh = TO_INT(ADD(ABS(params->eval.y), params->eval.h)); > > - } > > - > > /* Adjust rounding to not loose one pixels compared to float > > information only when rendering to avoid infinite adjustement > > when doing min restricted calc */ > > - if (xw < fxw) > > + if (ABS(params->final.x) + params->final.w < > > TO_INT(ADD(ABS(params->eval.x), params->eval.w))) > > { > > if (!ed->calc_only) > > { > > @@ -2430,7 +2413,7 @@ _edje_part_pixel_adjust(Edje *ed, > > ep->invalidate = EINA_TRUE; > > } > > } > > - else if (xw > fxw) > > + else if (ABS(params->final.x) + params->final.w > > > TO_INT(ADD(ABS(params->eval.x), params->eval.w))) > > { > > if (!ed->calc_only) > > { > > @@ -2441,8 +2424,7 @@ _edje_part_pixel_adjust(Edje *ed, > > ep->invalidate = EINA_TRUE; > > } > > } > > - > > - if (yh < fyh) > > + if (ABS(params->final.y) + params->final.h < > > TO_INT(ADD(ABS(params->eval.y), params->eval.h))) > > { > > if (!ed->calc_only) > > { > > @@ -2453,7 +2435,7 @@ _edje_part_pixel_adjust(Edje *ed, > > ep->invalidate = EINA_TRUE; > > } > > } > > - else if (yh > fyh) > > + else if (ABS(params->final.y) + params->final.h > > > TO_INT(ADD(ABS(params->eval.y), params->eval.h))) > > { > > if (!ed->calc_only) > > { > > @@ -2467,6 +2449,7 @@ _edje_part_pixel_adjust(Edje *ed, > > > > if (params->final.w < 0 || params->final.h < 0) > > ERR("The params final size became negative"); > > + > > } > > > > static void > > @@ -3011,7 +2994,7 @@ _edje_part_recalc_single(Edje *ed, > > params->final.w = TO_INT(params->eval.w); > > params->final.h = TO_INT(params->eval.h); > > > > - _edje_part_pixel_adjust(ed, ep, params, EINA_FALSE); > > + _edje_part_pixel_adjust(ed, ep, params); > > /* fill */ > > if (ep->part->type == EDJE_PART_TYPE_IMAGE) > > _edje_part_recalc_single_fill(ep, &((Edje_Part_Description_Image > > *)desc)->image.fill, params); > > @@ -3473,7 +3456,7 @@ _edje_physics_body_add(Edje *ed, Edje_Real_Part > *rp, > > EPhysics_World *world) > > ? (_x1) \ > > : ADD(_x1, MUL(_p, SUB(_x2, _x1)))); > > > > -#define INTP(_x1, _x2, _p) TO_INT_ROUND(FINTP(_x1, _x2, _p)) > > +#define INTP(_x1, _x2, _p) TO_INT(FINTP(_x1, _x2, _p)) > > > > static void > > _map_colors_free(Edje_Calc_Params *pf) > > @@ -4360,7 +4343,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int > > flags, Edje_Calc_Params *sta > > p3->req.w = INTP(p1->req.w, p2->req.w, pos); > > p3->req.h = INTP(p1->req.h, p2->req.h, pos); > > > > - _edje_part_pixel_adjust(ed, ep, p3, EINA_TRUE); > > + _edje_part_pixel_adjust(ed, ep, p3); > > > > if (ep->part->dragable.x) > > { > > diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h > > index 6ae592680f..a92e5b1273 100644 > > --- a/src/lib/edje/edje_private.h > > +++ b/src/lib/edje/edje_private.h > > @@ -155,9 +155,7 @@ EAPI extern int _edje_default_log_dom ; > > #define FROM_DOUBLE(a) eina_f32p32_double_from(a) > > #define FROM_INT(a) eina_f32p32_int_from(a) > > #define TO_INT(a) eina_f32p32_int_to(a) > > -#define TO_INT_ROUND(a) (((a) >= 0.0) \ > > - ? eina_f32p32_int_to(ADD(a, FROM_DOUBLE(0.5)) \ > > - : eina_f32p32_int_to(ADD(a, FROM_DOUBLE(-0.5)) > > +#define TO_INT_ROUND(a) eina_f32p32_int_to(ADD(a, FROM_DOUBLE(0.5))) > > #define ZERO 0 > > #define COS(a) eina_f32p32_cos(a) > > #define SIN(a) eina_f32p32_sin(a) > > @@ -180,7 +178,7 @@ EAPI extern int _edje_default_log_dom ; > > #define FROM_DOUBLE(a) (a) > > #define FROM_INT(a) (double)(a) > > #define TO_INT(a) (int)(a) > > -#define TO_INT_ROUND(a) (((a) >= 0.0) ? (int)(a + 0.5) : (int)(a - 0.5)) > > +#define TO_INT_ROUND(a) (int)(a + 0.5) > > #define ZERO 0.0 > > #define COS(a) cos(a) > > #define SIN(a) sin(a) > > > > -- > > > > > > > > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
