I suppose it's a little illogical that scale_x and scale_y really are the reciprocal values of how much the source image should be scaled. I don't remember exactly what I was thinking, but it might have something like "this allows you to just pass t[0][0] and t[1][1] if you have a pure scaling, which avoids a division". There is also kind of precedence in the Pixman API since the transformation given as in the dst->source direction.
I don't really like "size" either though. It's not really the size of the filter that we are specifying; it just happens to be proportional to it. If it comes down to "size" and "scale", I prefer "scale". Søren On Sun, Mar 6, 2016 at 8:06 PM, <spit...@gmail.com> wrote: > From: Bill Spitzak <spit...@gmail.com> > > This is to remove some confusion when reading the code. "scale" gets larger > as the picture gets larger, while "size" (ie the size of the filter) gets > smaller. > > v14: Removed changes to integral function > > Signed-off-by: Bill Spitzak <spit...@gmail.com> > Reviewed-by: Oded Gabbay <oded.gab...@gmail.com> > --- > pixman/pixman-filter.c | 18 +++++++++--------- > pixman/pixman.h | 6 +++--- > 2 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c > index a29116a..c03a7f6 100644 > --- a/pixman/pixman-filter.c > +++ b/pixman/pixman-filter.c > @@ -221,7 +221,7 @@ static void > create_1d_filter (int width, > pixman_kernel_t reconstruct, > pixman_kernel_t sample, > - double scale, > + double size, > int n_phases, > pixman_fixed_t *p) > { > @@ -251,8 +251,8 @@ create_1d_filter (int width, > double pos = x + 0.5 - frac; > double rlow = - filters[reconstruct].width / 2.0; > double rhigh = rlow + filters[reconstruct].width; > - double slow = pos - scale * filters[sample].width / 2.0; > - double shigh = slow + scale * filters[sample].width; > + double slow = pos - size * filters[sample].width / 2.0; > + double shigh = slow + size * filters[sample].width; > double c = 0.0; > double ilow, ihigh; > > @@ -262,7 +262,7 @@ create_1d_filter (int width, > ihigh = MIN (shigh, rhigh); > > c = integral (reconstruct, ilow, > - sample, 1.0 / scale, ilow - pos, > + sample, 1.0 / size, ilow - pos, > ihigh - ilow); > } > > @@ -335,12 +335,12 @@ filter_width (pixman_kernel_t reconstruct, > pixman_kernel_t sample, double size) > } > > /* Create the parameter list for a SEPARABLE_CONVOLUTION filter > - * with the given kernels and scale parameters > + * with the given kernels and size parameters > */ > PIXMAN_EXPORT pixman_fixed_t * > pixman_filter_create_separable_convolution (int *n_values, > - pixman_fixed_t scale_x, > - pixman_fixed_t scale_y, > + pixman_fixed_t size_x, > + pixman_fixed_t size_y, > pixman_kernel_t reconstruct_x, > pixman_kernel_t reconstruct_y, > pixman_kernel_t sample_x, > @@ -348,8 +348,8 @@ pixman_filter_create_separable_convolution (int > *n_values, > int > subsample_bits_x, > int > subsample_bits_y) > { > - double sx = fabs (pixman_fixed_to_double (scale_x)); > - double sy = fabs (pixman_fixed_to_double (scale_y)); > + double sx = fabs (pixman_fixed_to_double (size_x)); > + double sy = fabs (pixman_fixed_to_double (size_y)); > pixman_fixed_t *params; > int subsample_x, subsample_y; > int width, height; > diff --git a/pixman/pixman.h b/pixman/pixman.h > index 509ba5e..b012a33 100644 > --- a/pixman/pixman.h > +++ b/pixman/pixman.h > @@ -845,12 +845,12 @@ typedef enum > } pixman_kernel_t; > > /* Create the parameter list for a SEPARABLE_CONVOLUTION filter > - * with the given kernels and scale parameters. > + * with the given kernels and size parameters. > */ > pixman_fixed_t * > pixman_filter_create_separable_convolution (int *n_values, > - pixman_fixed_t scale_x, > - pixman_fixed_t scale_y, > + pixman_fixed_t size_x, > + pixman_fixed_t size_y, > pixman_kernel_t reconstruct_x, > pixman_kernel_t reconstruct_y, > pixman_kernel_t sample_x, > -- > 1.9.1 > > _______________________________________________ > Pixman mailing list > Pixman@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/pixman >
_______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/pixman