From 1160ed19187885e69ab4067b4100ca0eff16aeca Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor@ghostscript.com>
Date: Thu, 28 Oct 2004 07:45:37 +0200
Subject: indexed colorspace

---
 render/renderimage.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

(limited to 'render')

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);
-- 
cgit v1.2.3