LONG i, j, dx, dy, alterx, altery, idxColor, RGBulong = 0, c8;
BYTE *GDIpos, *initial, *tMask, *lMask;
- GDIpos = Source->pvBits;
+ GDIpos = Source->pvScan0;
dx = DestRect->right - DestRect->left;
dy = DestRect->bottom - DestRect->top;
alterx = abs(SourcePoint->x - DestRect->left);
altery = abs(SourcePoint->y - DestRect->top);
- if (ColorTranslation == NULL)
+ if (NULL == ColorTranslation)
{
- DIB_BltToVGA(DestRect->left, DestRect->top, dx, dy, Source->pvBits,
+ DIB_BltToVGA(DestRect->left, DestRect->top, dx, dy,
+ Source->pvScan0 + SourcePoint->y * Source->lDelta + (SourcePoint->x >> 1),
Source->lDelta);
}
else
BrushPoint, rop4));
case SRCCOPY:
- return(VGADDI_BltSrc(Dest, Source, ColorTranslation, DestRect,
- SourcePoint));
+ if (BMF_4BPP == Source->iBitmapFormat && BMF_4BPP == Dest->iBitmapFormat)
+ {
+ return(VGADDI_BltSrc(Dest, Source, ColorTranslation, DestRect,
+ SourcePoint));
+ }
+ else
+ {
+ return FALSE;
+ }
case 0xAACC:
return(VGADDI_BltMask(Dest, Mask, ColorTranslation, DestRect,