FIXME's and missing buttons

gerard patel g.patel at wanadoo.fr.invalid
Fri Nov 16 14:27:46 CST 2001


On Fri, 16 Nov 2001 10:31:40 -0800, "Dan" <none at none.com> wrote:

>Hey there.  I am running a program call SciFinder Scholar (it searches
>research journal pub databases) under codeweavers wine preview 4.
>
>Program runs pretty well  EXCEPT
>all of the toolbar buttons are blank.
>and there are a fair number of the following errors
>
>fixme:bitmap:X11DRV_DIB_GetImageBits_1 from 1 bit bitmap with mask R,G,B
>ff0000,ff00,ff to 1 bit DIB
>fixme:bitblt:MaskBlt (2572,214,196,210,24,2552,0,0,2684,0,0,-1429471232):
>stub
>fixme:bitblt:MaskBlt (2572,214,196,210,24,2552,0,0,2688,0,0,-1429471232):
>stub
>
>I would like to contribute..and actually FIX the fixme's instead of just
>sitting here whining about my wine not working.  Can someone give me a few
>pointers (such as if the blank buttons ARE related to the errors) so that I
>can try and get the button graphics.
>

I don't know if these unimplemented Maskblt calls are related
to your toolbar problem - Normal toolbar don't use Maskblt and
most programs using toolbars display fine.

Here is the Wine 'implementation' of MaskBlt :

BOOL WINAPI MaskBlt(HDC hdcDest, INT nXDest, INT nYDest,
                        INT nWidth, INT nHeight, HDC hdcSource,
                        INT nXSrc, INT nYSrc, HBITMAP hbmMask,
                        INT xMask, INT yMask, DWORD dwRop)
{
    FIXME("(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%ld): stub\n",

hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSource,nXSrc,nYSrc,
             hbmMask,xMask,yMask,dwRop);
    return 1;
}

as you can see, the stub info message displays that the
missing graphic has 210 pixels x 24 : this could be a frame
for a custom toolbar, but not a button I think.

Now, about implementing MaskBlt : this is not impossible of course -
IIRC MaskBlt should get the bulk of functionnality of existing BitBlt,
just adding a mask ;-). Then BitBlt should call down to MaskBlt.
Unfortunately, BitBlt is a bit complex :-)
Take a look at graphics/x11drv/bitblt.c. This is bitblt for X 'device
context'. If you can read and understand it easily, you will not have
any problem fixing this old problem.

Gerard



More information about the wine-users mailing list