wineps: Use the correct colours when a monochrome bitmap without a colour table is the source.

This commit is contained in:
Huw Davies 2014-02-24 15:11:57 +00:00 committed by Alexandre Julliard
parent 90dfe084c6
commit ad7e889c1d
1 changed files with 15 additions and 6 deletions

View File

@ -101,6 +101,7 @@ static BOOL PSDRV_WriteImageMaskHeader(PHYSDEV dev, const BITMAPINFO *info, INT
INT widthSrc, INT heightSrc)
{
PSCOLOR bkgnd, foregnd;
PSDRV_PDEVICE *physDev = get_psdrv_dev( dev );
assert(info->bmiHeader.biBitCount == 1);
@ -108,12 +109,20 @@ static BOOL PSDRV_WriteImageMaskHeader(PHYSDEV dev, const BITMAPINFO *info, INT
the foregnd color corresponds to a bit equal to
0 in the bitmap.
*/
PSDRV_CreateColor(dev, &foregnd, RGB(info->bmiColors[0].rgbRed,
info->bmiColors[0].rgbGreen,
info->bmiColors[0].rgbBlue) );
PSDRV_CreateColor(dev, &bkgnd, RGB(info->bmiColors[1].rgbRed,
info->bmiColors[1].rgbGreen,
info->bmiColors[1].rgbBlue) );
if (!info->bmiHeader.biClrUsed)
{
PSDRV_CreateColor( dev, &foregnd, GetTextColor( dev->hdc ) );
bkgnd = physDev->bkColor;
}
else
{
PSDRV_CreateColor( dev, &foregnd, RGB(info->bmiColors[0].rgbRed,
info->bmiColors[0].rgbGreen,
info->bmiColors[0].rgbBlue) );
PSDRV_CreateColor( dev, &bkgnd, RGB(info->bmiColors[1].rgbRed,
info->bmiColors[1].rgbGreen,
info->bmiColors[1].rgbBlue) );
}
PSDRV_WriteGSave(dev);
PSDRV_WriteNewPath(dev);