diff options
Diffstat (limited to 'render/renderimage.c')
-rw-r--r-- | render/renderimage.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/render/renderimage.c b/render/renderimage.c index a89409c5..37c32fae 100644 --- a/render/renderimage.c +++ b/render/renderimage.c @@ -9,10 +9,12 @@ void fz_gammapixmap(fz_pixmap *pix, float gamma); static inline int getcomp(fz_pixmap *pix, int u, int v, int k) { - if (u < 0 || u >= pix->w) - return 0; - if (v < 0 || v >= pix->h) - return 0; +// if (u < 0 || u >= pix->w) +// return 0; +// if (v < 0 || v >= pix->h) +// return 0; + u = CLAMP(u, 0, pix->w - 1); + v = CLAMP(v, 0, pix->h - 1); return pix->samples[ (v * pix->w + u) * pix->n + k ]; } @@ -172,11 +174,11 @@ fz_renderimage(fz_renderer *gc, fz_imagenode *node, fz_matrix ctm) float sy = sqrt(ctm.c * ctm.c + ctm.d * ctm.d); int dx = 1; - while ( ( (w + dx - 1) / dx ) / sx > 2.0 ) + while ( ( (w + dx - 1) / dx ) / sx > 2.0 && (w+dx-1)/dx > 1) dx++; int dy = 1; - while ( ( (h + dy - 1) / dy ) / sy > 2.0 ) + while ( ( (h + dy - 1) / dy ) / sy > 2.0 && (h+dy-1)/dy > 1) dy++; printf("renderimage s=%gx%g/%dx%d d=%d,%d\n", sx, sy, w, h, dx, dy); |