diff options
Diffstat (limited to 'pixman/pixman-trap.c')
-rw-r--r-- | pixman/pixman-trap.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/pixman/pixman-trap.c b/pixman/pixman-trap.c index 962cbb3..8353992 100644 --- a/pixman/pixman-trap.c +++ b/pixman/pixman-trap.c @@ -28,8 +28,8 @@ #include "pixman-private.h" /* - * Compute the smallest value no less than y which is on a - * grid row + * Compute the smallest value greater than or equal to y which is on a + * grid row. */ PIXMAN_EXPORT pixman_fixed_t @@ -38,7 +38,7 @@ pixman_sample_ceil_y (pixman_fixed_t y, int n) pixman_fixed_t f = pixman_fixed_frac (y); pixman_fixed_t i = pixman_fixed_floor (y); - f = ((f + Y_FRAC_FIRST (n)) / STEP_Y_SMALL (n)) * STEP_Y_SMALL (n) + + f = DIV (f - Y_FRAC_FIRST (n) + (STEP_Y_SMALL (n) - pixman_fixed_e), STEP_Y_SMALL (n)) * STEP_Y_SMALL (n) + Y_FRAC_FIRST (n); if (f > Y_FRAC_LAST (n)) @@ -57,8 +57,8 @@ pixman_sample_ceil_y (pixman_fixed_t y, int n) } /* - * Compute the largest value no greater than y which is on a - * grid row + * Compute the largest value strictly less than y which is on a + * grid row. */ PIXMAN_EXPORT pixman_fixed_t pixman_sample_floor_y (pixman_fixed_t y, @@ -67,7 +67,7 @@ pixman_sample_floor_y (pixman_fixed_t y, pixman_fixed_t f = pixman_fixed_frac (y); pixman_fixed_t i = pixman_fixed_floor (y); - f = DIV (f - Y_FRAC_FIRST (n), STEP_Y_SMALL (n)) * STEP_Y_SMALL (n) + + f = DIV (f - pixman_fixed_e - Y_FRAC_FIRST (n), STEP_Y_SMALL (n)) * STEP_Y_SMALL (n) + Y_FRAC_FIRST (n); if (f < Y_FRAC_FIRST (n)) @@ -380,7 +380,7 @@ pixman_rasterize_trapezoid (pixman_image_t * image, if (pixman_fixed_to_int (b) >= height) b = pixman_int_to_fixed (height) - 1; b = pixman_sample_floor_y (b, bpp); - + if (b >= t) { /* initialize edge walkers */ |