diff options
-rw-r--r-- | pixman/pixman-filter.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c index 17668234..bbde9467 100644 --- a/pixman/pixman-filter.c +++ b/pixman/pixman-filter.c @@ -243,15 +243,23 @@ create_1d_filter (int width, for (i = 0; i < n_phases; ++i) { - double frac = (n_phases == 1)? 0.5 : (i / (double)n_phases); + double frac = 0.5; pixman_fixed_t new_total; int x, x1, x2; double total, e; + int first; /* Sample convolution of reconstruction and sampling * filter. See rounding.txt regarding the rounding * and sample positions. */ + if (width & 1) + first = 0; + + for (i = n_phases - 1; i >= 0; --i) + { + int phase = frac + } x1 = ceil (frac - width / 2.0 - 0.5); x2 = x1 + width; @@ -259,6 +267,8 @@ create_1d_filter (int width, total = 0; for (x = x1; x < x2; ++x) { + (n_phases == 1)? 0.5 : (i / (double)n_phases); + double pos = x + 0.5 - frac; double rlow = - filters[reconstruct].width / 2.0; double rhigh = rlow + filters[reconstruct].width; |