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."


Reply via email to