+ memcpy(f, f1, sizeof(FILTER_GRADIENTGLOW));
+ f->blurx= interpolateScalar(f1->blurx, (f2->blurx), ratio, inter);
+ f->blury= interpolateScalar(f1->blury, (f2->blury), ratio, inter);
+ f->passes= interpolateScalar(f1->passes, (f2->passes), ratio, inter);
+ f->angle= interpolateScalar(f1->angle, (f2->angle), ratio, inter);
+ f->distance= interpolateScalar(f1->distance, (f2->distance), ratio, inter);
+ double d = f->distance;
+ double fr;
+ if (d < 0)
+ fr = ((int)d - d)*65536;
+ else
+ fr = (d - (int)d)*65536;
+ printf("%.3f <> %.3f : %.3f = %.3f [%.3f . %.3f] - %.5u.%.5u\n", f1->distance, f2->distance, ratio, f->distance, d, fr/65536, (U16)d, (U16)fr);
+ f->strength= interpolateScalar(f1->strength, (f2->strength), ratio, inter);
+ f->gradient= interpolateGradient(f1->gradient, f2->gradient, ratio, inter);
+ if (f1 == noGradientGlow)
+ {
+ if (f2 != noGradientGlow)
+ matchGradientGlowFlags(f, f2);
+ }
+ else
+ if (f2 == noGradientGlow)
+ matchGradientGlowFlags(f, f1);
+ else
+ if (ratio > 0.5)
+ matchGradientGlowFlags(f, f2);
+ else
+ matchGradientGlowFlags(f, f1);