Hi Ove,
I've noticed a bug that was introduced in a patch you
originally submitted about a month ago. (Dec.6,2000)
The patch was called 'DIB structure patch' and it
restructured how DIB sections were handled as well as a
small optomization in X11DRV_BitBlt.
When I start my application (Groove) up with 16bpp mode,
whatever is being bitblt'ed turns out as big black
rectangles. If I start up with 8bpp mode, it looks fine.
(or, at least as fine as it can look in 8bpp ^_^)
If I comment out the small optomization, my app
appears fine in 16bpp mode like it did in the past.
The code I comment out is:
====== graphics/x11drv/bitblt.c (1512-1542) ======
if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY)) {
/* do everything ourselves; map coordinates */
xSrc = dcSrc->DCOrgX + XLPTODP( dcSrc, xSrc );
ySrc = dcSrc->DCOrgY + YLPTODP( dcSrc, ySrc );
xDst = dcDst->DCOrgX + XLPTODP( dcDst, xDst );
yDst = dcDst->DCOrgY + YLPTODP( dcDst, yDst );
width = MulDiv(width, dcDst->vportExtX, dcDst->wndExtX);
height = MulDiv(height, dcDst->vportExtY, dcDst->wndExtY);
/* Perform basic clipping */
if (!BITBLT_GetVisRectangles( dcDst, xDst, yDst, width, height,
dcSrc, xSrc, ySrc, width, height,
&visRectSrc, &visRectDst ))
goto END;
xSrc = visRectSrc.left;
ySrc = visRectSrc.top;
xDst = visRectDst.left;
yDst = visRectDst.top;
width = visRectDst.right - visRectDst.left;
height = visRectDst.bottom - visRectDst.top;
if (sDst == DIB_Status_AppMod) {
FIXME("potential optimization - client-side DIB copy\n");
}
X11DRV_CoerceDIBSection( dcDst, DIB_Status_GdiMod, FALSE );
X11DRV_DIB_CopyDIBSection( dcSrc, dcDst, xSrc, ySrc, xDst, yDst, width, height);
result = TRUE;
goto END;
}
==================================================
I'm sure that my application isn't the only one who is having
problems.. Anyway, I was just wondering if you had any ideas with
what could be going wrong in this section of code. Any help
would be appreciated.
Thanks,
-James
--
James Hatheway
Software Designer - Macadamian Technologies, Inc.
[EMAIL PROTECTED] ~ http://www.macadamian.com
"Nothing is a problem once you debug the code."