oldPal = dc->w.hPalette;
dc->w.hPalette = hpal;
}
+ else if (8 < dc->w.bitsPerPixel && PAL_INDEXED == PalGDI->Mode)
+ {
+ PALETTE_UnlockPalette(PalGDI);
+ oldPal = dc->PalIndexed;
+ dc->PalIndexed = hpal;
+ }
else
{
PALETTE_UnlockPalette(PalGDI);
NewDC->w.hFirstBitmap = hBitmap;
NewDC->GDIDevice = OrigDC->GDIDevice;
+ NewDC->PalIndexed = OrigDC->PalIndexed;
NewDC->w.hPalette = OrigDC->w.hPalette;
NewDC->w.textColor = OrigDC->w.textColor;
NewDC->w.textAlign = OrigDC->w.textAlign;
if (! CreateAsIC)
{
+ NewDC->PalIndexed = NtGdiGetStockObject(DEFAULT_PALETTE);
NewDC->w.hPalette = NewDC->DevInfo->hpalDefault;
NewDC->w.ROPmode = R2_COPYPEN;
#if 0
newdc->w.hDevice = dc->w.hDevice;
#endif
+ newdc->PalIndexed = dc->PalIndexed;
newdc->w.hPalette = dc->w.hPalette;
newdc->w.totalExtent = dc->w.totalExtent;
newdc->w.bitsPerPixel = dc->w.bitsPerPixel;
dc->vportOrgY = dcs->vportOrgY;
dc->vportExtX = dcs->vportExtX;
dc->vportExtY = dcs->vportExtY;
+ dc->PalIndexed = dcs->PalIndexed;
if (!(dc->w.flags & DC_MEMORY))
{
if (palGDI->Mode != PAL_INDEXED)
{
PALETTE_UnlockPalette(palGDI);
- return NULL;
+ palGDI = PALETTE_LockPalette(dc->PalIndexed);
+ if (palGDI->Mode != PAL_INDEXED)
+ {
+ return NULL;
+ }
}
nNumColors = 1 << lpbmi->bmiHeader.biBitCount;