From 3c76b14474c6d5a3b7b4af55bd472f425856643d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard <julliard@winehq.org> Date: Wed, 3 Oct 2001 18:45:41 +0000 Subject: [PATCH] Skip BitBlt DIB optimization if source and dest DCs have different depths. --- graphics/x11drv/bitblt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/graphics/x11drv/bitblt.c b/graphics/x11drv/bitblt.c index e99081c4151..f89d6f90f53 100644 --- a/graphics/x11drv/bitblt.c +++ b/graphics/x11drv/bitblt.c @@ -1504,7 +1504,9 @@ BOOL X11DRV_BitBlt( DC *dcDst, INT xDst, INT yDst, sDst = X11DRV_LockDIBSection( dcDst, DIB_Status_None, FALSE ); sSrc = X11DRV_LockDIBSection( dcSrc, DIB_Status_None, FALSE ); - if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY)) { + if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY) && + (dcSrc->bitsPerPixel == dcDst->bitsPerPixel)) + { /* do everything ourselves; map coordinates */ xSrc = dcSrc->DCOrgX + XLPTODP( dcSrc, xSrc ); ySrc = dcSrc->DCOrgY + YLPTODP( dcSrc, ySrc ); -- GitLab