From dff30ac2c71c73d001dfeeadc3093b15dcdcb4fc Mon Sep 17 00:00:00 2001
From: Pascal Lessard <pascal@macadamian.com>
Date: Sun, 15 Aug 1999 14:18:59 +0000
Subject: [PATCH] Now the conversion in the blt functions round up the result.

---
 graphics/x11drv/bitblt.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/graphics/x11drv/bitblt.c b/graphics/x11drv/bitblt.c
index dbf75c68c7c..82228d337eb 100644
--- a/graphics/x11drv/bitblt.c
+++ b/graphics/x11drv/bitblt.c
@@ -1140,8 +1140,10 @@ static BOOL BITBLT_InternalStretchBlt( DC *dcDst, INT xDst, INT yDst,
 
     xDst      = dcDst->w.DCOrgX + XLPTODP( dcDst, xDst );
     yDst      = dcDst->w.DCOrgY + YLPTODP( dcDst, yDst );
-    widthDst  = widthDst * dcDst->vportExtX / dcDst->wndExtX;
-    heightDst = heightDst * dcDst->vportExtY / dcDst->wndExtY;
+
+    /* Here we have to round to integers, not truncate */
+    widthDst  = MulDiv(widthDst, dcDst->vportExtX, dcDst->wndExtX);
+    heightDst = MulDiv(heightDst, dcDst->vportExtY, dcDst->wndExtY);
 
     TRACE("    vportdst=%d,%d-%d,%d wnddst=%d,%d-%d,%d\n",
                     dcDst->vportOrgX, dcDst->vportOrgY,
-- 
GitLab