Bugfix: create DDB in X11DRV_DIB_GetDIBits if necessary.

This commit is contained in:
Ulrich Weigand 1999-09-19 18:58:16 +00:00 committed by Alexandre Julliard
parent dfc91a1b59
commit af1c41fb8d
1 changed files with 7 additions and 1 deletions

View File

@ -2827,6 +2827,7 @@ INT X11DRV_DIB_GetDIBits(
{ {
X11DRV_DIBSECTION *dib = (X11DRV_DIBSECTION *) bmp->dib; X11DRV_DIBSECTION *dib = (X11DRV_DIBSECTION *) bmp->dib;
X11DRV_DIB_IMAGEBITS_DESCR descr; X11DRV_DIB_IMAGEBITS_DESCR descr;
X11DRV_PHYSBITMAP *pbitmap;
PALETTEOBJ * palette; PALETTEOBJ * palette;
TRACE_(bitmap)("%u scanlines of (%i,%i) -> (%i,%i) starting from %u\n", TRACE_(bitmap)("%u scanlines of (%i,%i) -> (%i,%i) starting from %u\n",
@ -2867,12 +2868,17 @@ INT X11DRV_DIB_GetDIBits(
} }
/* Hack for now */ /* Hack for now */
if(!bmp->DDBitmap)
X11DRV_CreateBitmap(hbitmap);
pbitmap = bmp->DDBitmap->physBitmap;
descr.dc = dc; descr.dc = dc;
descr.palentry = palette->logpalette.palPalEntry; descr.palentry = palette->logpalette.palPalEntry;
descr.bits = bits; descr.bits = bits;
descr.lines = lines; descr.lines = lines;
descr.depth = bmp->bitmap.bmBitsPixel; descr.depth = bmp->bitmap.bmBitsPixel;
descr.drawable = ((X11DRV_PHYSBITMAP *)bmp->DDBitmap->physBitmap)->pixmap; descr.drawable = pbitmap->pixmap;
descr.gc = BITMAP_GC(bmp); descr.gc = BITMAP_GC(bmp);
descr.xSrc = 0; descr.xSrc = 0;
descr.ySrc = startscan; descr.ySrc = startscan;