X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Finterp.h;h=6cbcffbe9eeb45a9da086133afabce1c183a0977;hp=ee183476925482bb6fd97237b1db5149af66ccb8;hb=a1ac06b20d3f74749b612998908e70fbac7f48ab;hpb=f7775d64092420a00bab4d1df06fa524eda59b63 diff --git a/cinelerra-5.1/cinelerra/interp.h b/cinelerra-5.1/cinelerra/interp.h index ee183476..6cbcffbe 100644 --- a/cinelerra-5.1/cinelerra/interp.h +++ b/cinelerra-5.1/cinelerra/interp.h @@ -64,11 +64,11 @@ static inline float interp_cubic(float dx, float p0, float p1, float p2, float p #define bi_linear_SETUP(typ, components, tx, ty) \ - float dx = (tx)-0.5, dy = (ty)-0.5; \ - int itx = dx, ity = dy, in_comps = (components); \ - if( (dx -= itx) < 0 ) dx += 1; \ - if( (dy -= ity) < 0 ) dy += 1; \ - int c0 = itx+0, c1 = itx+1, r0 = ity+0, r1 = ity+1; \ + const int in_comps = components; \ + float fx = (tx), fy = (ty); \ + int c0 = floorf(fx), r0 = floorf(fy); \ + float dx = fx-c0, dy = fy-r0; \ + int c1 = c0+1, r1 = r0+1; \ typ *r0p = r0>=in_min_y && r0=in_min_y && r1=in_min_y && rp=in_min_y && r0=in_min_y && r1