diff options
Diffstat (limited to 'win/tkWinDraw.c')
-rw-r--r-- | win/tkWinDraw.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/win/tkWinDraw.c b/win/tkWinDraw.c index d3830e7..d053e78 100644 --- a/win/tkWinDraw.c +++ b/win/tkWinDraw.c @@ -519,7 +519,6 @@ TkPutImage( BITMAPINFO *infoPtr; HBITMAP bitmap; char *data; - Visual *visual; display->request++; @@ -557,7 +556,7 @@ TkPutImage( infoPtr = ckalloc(sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*ncolors); } else { - infoPtr = ckalloc(sizeof(BITMAPINFOHEADER) + sizeof(DWORD)*4); + infoPtr = ckalloc(sizeof(BITMAPINFOHEADER)); } infoPtr->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); @@ -565,13 +564,13 @@ TkPutImage( infoPtr->bmiHeader.biHeight = -image->height; /* Top-down order */ infoPtr->bmiHeader.biPlanes = 1; infoPtr->bmiHeader.biBitCount = image->bits_per_pixel; + infoPtr->bmiHeader.biCompression = BI_RGB; infoPtr->bmiHeader.biSizeImage = 0; infoPtr->bmiHeader.biXPelsPerMeter = 0; infoPtr->bmiHeader.biYPelsPerMeter = 0; infoPtr->bmiHeader.biClrImportant = 0; if (usePalette) { - infoPtr->bmiHeader.biCompression = BI_RGB; infoPtr->bmiHeader.biClrUsed = ncolors; for (i = 0; i < ncolors; i++) { infoPtr->bmiColors[i].rgbBlue = GetBValue(colors[i]); @@ -580,13 +579,7 @@ TkPutImage( infoPtr->bmiColors[i].rgbReserved = 0; } } else { - infoPtr->bmiHeader.biCompression = BI_BITFIELDS; - /* Modelled on XGetVisualInfo() in xutil.c. - * We want to get the rgb masks for the default visual for the given display. */ - visual = DefaultVisual(display,0); - *((DWORD *)((unsigned char *)infoPtr + sizeof(BITMAPINFOHEADER))) = visual->blue_mask; - *((DWORD *)((unsigned char *)infoPtr + sizeof(BITMAPINFOHEADER))+1) = visual->green_mask; - *((DWORD *)((unsigned char *)infoPtr + sizeof(BITMAPINFOHEADER))+2) = visual->red_mask; + infoPtr->bmiHeader.biClrUsed = 0; } bitmap = CreateDIBitmap(dc, &infoPtr->bmiHeader, CBM_INIT, image->data, infoPtr, DIB_RGB_COLORS); |