On Fri, Jan 22, 2016 at 11:42 AM, <spit...@gmail.com> wrote: > From: Bill Spitzak <spit...@gmail.com> > The title of the patch confused me a bit. Maybe rewrite it as: pixman-filter: Add description to pixman_filter_create_separable_convolution()
> v9: Described arguments and more filter combinations, fixed some errors. > v8: first version No need of v8:first version > > Signed-off-by: Bill Spitzak <spit...@gmail.com> > --- > pixman/pixman-filter.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 45 insertions(+), 1 deletion(-) > > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c > index 639d5e6..74819fe 100644 > --- a/pixman/pixman-filter.c > +++ b/pixman/pixman-filter.c > @@ -378,7 +378,51 @@ filter_width(pixman_kernel_t reconstruct, > pixman_kernel_t sample, > } > > /* Create the parameter list for a SEPARABLE_CONVOLUTION filter > - * with the given kernels and scale parameters > + * > + * Returns pointer to the block of numbers > + * > + * n_values: pointer to integer to store size of the block > + * > + * scale_x/y: amount to stretch the sample filter. Note that scale > + * is the inverse of how the image is being scaled, if the image is > + * being made smaller, the filter gets larger. > + * > + * reconstruct_x/y: filter that is not scaled. > + * > + * sample_x/y: filter that is scaled. Resoult is convolved with reconstruct > filter. > + * > + * subsample_bits_x/y: If positive there are 2^n subpixel positions computed > for > + * the filter. If negative then -n (rounded up to the next power of 2) > positions > + * are calculated when scale==1, but fewer are computed for larger scales and > + * more for smaller scales. > + * > + * Some interesting reconstruct.sample combinations: > + * > + * IMPULSE.x - Uses the sample function only. This is what many other > pieces of > + * software do. Does not work for scale < 1.0. > + * > + * BOX.x - For scale < 1.0 this produces square pixels. For scale > 1.0 this > + * approaches IMPULSE.x as scale gets larger. > + * > + * x.IMPULSE - Uses the reconstruct function only, scale is ignored. > + * > + * BOX.BOX, LINEAR.IMPULSE, IMPULSE.LINEAR - at scale==1 these all match and > + * also produce same result as bilinear filtering. > + * > + * BOX.BOX - Produces a trapazoid-shape. Narrowest possible filter with > antialiasing. > + * Matches a lot of other software, some call it "box", others > call it "linear" > + * > + * BOX.LINEAR - At scale==1 this is what some software calls a Quadratic > filter > + * > + * IMPULSE.LINEAR - Some software calls this "linear" or "triangle". Not a > good filter. > + * > + * LINEAR.LINEAR - non-negative cubic. What some software calls "cubic > interpolation". > + * > + * IMPULSE.LANCZOS2 - Close to what a lot of other software calls "cubic > interpolation" > + * > + * IMPULSE.CUBIC - Called "Mitchell" in other software > + * > + * IMPULSE.GAUSSIAN - Best removal of aliasing but usually considered too > blurry > */ > PIXMAN_EXPORT pixman_fixed_t * > pixman_filter_create_separable_convolution (int *n_values, > -- > 1.9.1 > > _______________________________________________ > Pixman mailing list > Pixman@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pixman With those changes, this patch is: Reviewed-by: Oded Gabbay <oded.gab...@gmail.com> _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman