From: Bill Spitzak <spit...@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 <spit...@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

_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to