X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a3bf7524f394af039efe196a186f7969cbabcc19..e970653a2d44003d5a21171a27707341771c5c4c:/src/msw/bitmap.cpp diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index 0e5ab48c9f..3a3798dce3 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -1510,20 +1510,20 @@ void wxBitmap::UngetRawData(wxPixelDataBase& dataBase) p = rowStart; p.OffsetY(data, 1); } + } - // if we're a DDB we need to convert DIB back to DDB now to make the - // changes made via raw bitmap access effective - if ( !GetBitmapData()->m_isDIB ) - { - wxDIB *dib = GetBitmapData()->m_dib; - GetBitmapData()->m_dib = NULL; + // if we're a DDB we need to convert DIB back to DDB now to make the + // changes made via raw bitmap access effective + if ( !GetBitmapData()->m_isDIB ) + { + wxDIB *dib = GetBitmapData()->m_dib; + GetBitmapData()->m_dib = NULL; - // TODO: convert + // TODO: convert - delete dib; - } + delete dib; } -#endif +#endif // wxUSE_WXDIB } #endif // #ifdef wxHAVE_RAW_BITMAP @@ -1762,14 +1762,11 @@ bool wxCreateDIB(long xSize, long ySize, long bitsPerPixel, HPALETTE hPal, LPBITMAPINFO* lpDIBHeader) { unsigned long i, headerSize; - LPBITMAPINFO lpDIBheader = NULL; - LPPALETTEENTRY lpPe = NULL; - // Allocate space for a DIB header headerSize = (sizeof(BITMAPINFOHEADER) + (256 * sizeof(PALETTEENTRY))); - lpDIBheader = (BITMAPINFO *) malloc(headerSize); - lpPe = (PALETTEENTRY *)((BYTE*)lpDIBheader + sizeof(BITMAPINFOHEADER)); + LPBITMAPINFO lpDIBheader = (BITMAPINFO *) malloc(headerSize); + LPPALETTEENTRY lpPe = (PALETTEENTRY *)((BYTE*)lpDIBheader + sizeof(BITMAPINFOHEADER)); GetPaletteEntries(hPal, 0, 256, lpPe); @@ -1910,8 +1907,8 @@ HBITMAP wxInvertMask(HBITMAP hbmpMask, int w, int h) wxLogLastError(wxT("CreateBitmap")); } - ::SelectObject(hdcSrc, hbmpMask); - ::SelectObject(hdcDst, hbmpInvMask); + HGDIOBJ srcTmp = ::SelectObject(hdcSrc, hbmpMask); + HGDIOBJ dstTmp = ::SelectObject(hdcDst, hbmpInvMask); if ( !::BitBlt(hdcDst, 0, 0, w, h, hdcSrc, 0, 0, NOTSRCCOPY) ) @@ -1919,6 +1916,10 @@ HBITMAP wxInvertMask(HBITMAP hbmpMask, int w, int h) wxLogLastError(wxT("BitBlt")); } + // Deselect objects + SelectObject(hdcSrc,srcTmp); + SelectObject(hdcDst,dstTmp); + ::DeleteDC(hdcSrc); ::DeleteDC(hdcDst);