[Pixman] [PATCH v10 11/15] pixman-filter: Turn off subsampling for width=1 filters

spitzak at gmail.com spitzak at gmail.com
Mon Feb 1 22:28:16 PST 2016


From: Bill Spitzak <spitzak at gmail.com>

Due to normalization these filters must all be identical (a single 1.0).

Also make IMPULSE.IMPULSE produce a width=1 filter, rather than zero
(which did not work).

v7: Replaced earlier tests for BOX.IMPULSE
v10: Moved code to filter_width function

Signed-off-by: Bill Spitzak <spitzak at gmail.com>
---
 pixman/pixman-filter.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
index 10fa398..520ce92 100644
--- a/pixman/pixman-filter.c
+++ b/pixman/pixman-filter.c
@@ -341,7 +341,13 @@ static int
 filter_width(pixman_kernel_t reconstruct, pixman_kernel_t sample,
 	     double* size, int* subsample_bits)
 {
-    return ceil (filters[reconstruct].width + *size * filters[sample].width);
+    int width = ceil (filters[reconstruct].width + *size * filters[sample].width);
+    if (width <= 1)
+    {
+	width = 1;
+	*subsample_bits = 0;
+    }
+    return width;
 }
 
 /* Create the parameter list for a SEPARABLE_CONVOLUTION filter
-- 
1.9.1



More information about the Pixman mailing list