diff options
author | Bill Spitzak <spitzak@gmail.com> | 2016-02-08 00:06:53 -0800 |
---|---|---|
committer | Oded Gabbay <oded.gabbay@gmail.com> | 2016-02-08 10:22:08 +0200 |
commit | fe65084d2aead30cf06031e3e27594a3fa165d41 (patch) | |
tree | c7acaa8a295f8978c0172121f68fe3210ea3d5ca | |
parent | b6e90d83da31009b8b26a2b3982baef151722c78 (diff) |
pixman-filter: Consistency in arg names to integral ()
Rename kernel1/2 to reconstruct/sample to match the other functions.
Rename "scale" to "size" to avoid confusion with the scale being applied
to the image, which is the reciprocol of this value.
v10: Renamed "scale" to "size"
Signed-off-by: Bill Spitzak <spitzak@gmail.com>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
-rw-r--r-- | pixman/pixman-filter.c | 48 | ||||
-rw-r--r-- | pixman/pixman.h | 6 |
2 files changed, 26 insertions, 28 deletions
diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index 3981c8b..b70da1f 100644 --- a/pixman/pixman-filter.c +++ b/pixman/pixman-filter.c @@ -147,8 +147,8 @@ static const filter_info_t filters[] = { PIXMAN_KERNEL_LANCZOS3_STRETCHED, nice_kernel, 8.0 }, }; -/* This function scales @kernel2 by @scale, then - * aligns @x1 in @kernel1 with @x2 in @kernel2 and +/* This function scales the @sample filter by @size, then + * aligns @x1 in @reconstruct with @x2 in @sample and * and integrates the product of the kernels across @width. * * This function assumes that the intervals are within @@ -156,8 +156,8 @@ static const filter_info_t filters[] = * try to integrate a linear kernel ouside of [-1:1] */ static double -integral (pixman_kernel_t kernel1, double x1, - pixman_kernel_t kernel2, double scale, double x2, +integral (pixman_kernel_t reconstruct, double x1, + pixman_kernel_t sample, double size, double x2, double width) { /* If the integration interval crosses zero, break it into @@ -168,31 +168,31 @@ integral (pixman_kernel_t kernel1, double x1, if (x1 < 0 && x1 + width > 0) { return - integral (kernel1, x1, kernel2, scale, x2, - x1) + - integral (kernel1, 0, kernel2, scale, x2 - x1, width + x1); + integral (reconstruct, x1, sample, size, x2, - x1) + + integral (reconstruct, 0, sample, size, x2 - x1, width + x1); } else if (x2 < 0 && x2 + width > 0) { return - integral (kernel1, x1, kernel2, scale, x2, - x2) + - integral (kernel1, x1 - x2, kernel2, scale, 0, width + x2); + integral (reconstruct, x1, sample, size, x2, - x2) + + integral (reconstruct, x1 - x2, sample, size, 0, width + x2); } - else if (kernel1 == PIXMAN_KERNEL_IMPULSE) + else if (reconstruct == PIXMAN_KERNEL_IMPULSE) { assert (width == 0.0); - return filters[kernel2].func (x2 * scale); + return filters[sample].func (x2 / size); } - else if (kernel2 == PIXMAN_KERNEL_IMPULSE) + else if (sample == PIXMAN_KERNEL_IMPULSE) { assert (width == 0.0); - return filters[kernel1].func (x1); + return filters[reconstruct].func (x1); } else { /* Integration via Simpson's rule */ #define N_SEGMENTS 128 #define SAMPLE(a1, a2) \ - (filters[kernel1].func ((a1)) * filters[kernel2].func ((a2) * scale)) + (filters[reconstruct].func ((a1)) * filters[sample].func ((a2) / size)) double s = 0.0; double h = width / (double)N_SEGMENTS; @@ -221,16 +221,14 @@ static pixman_fixed_t * create_1d_filter (int *width, pixman_kernel_t reconstruct, pixman_kernel_t sample, - double scale, + double size, int n_phases) { pixman_fixed_t *params, *p; double step; - double size; int i; - size = scale * filters[sample].width + filters[reconstruct].width; - *width = ceil (size); + *width = ceil (size * filters[sample].width + filters[reconstruct].width); p = params = malloc (*width * n_phases * sizeof (pixman_fixed_t)); if (!params) @@ -259,8 +257,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; @@ -270,7 +268,7 @@ create_1d_filter (int *width, ihigh = MIN (shigh, rhigh); c = integral (reconstruct, ilow, - sample, 1.0 / scale, ilow - pos, + sample, size, ilow - pos, ihigh - ilow); } @@ -339,12 +337,12 @@ gnuplot_filter(int width, int samples, const pixman_fixed_t* p) #endif /* 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, @@ -352,8 +350,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 *horz = NULL, *vert = NULL, *params = NULL; 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, |