From a91bcd3b54fe663b3ee78e995cf3e1aeff1a34b4 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 20 Feb 2005 12:07:25 +0000 Subject: [PATCH] removed wxLoadBitmap() introduced in 1.37 -> 1.38; just use DIBs under Windows CE as well, we surely shouldn't duplicate system functions _especially_ on a platform with limited resources such as CE git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/gdiimage.cpp | 94 +------------------------------------------- 1 file changed, 1 insertion(+), 93 deletions(-) diff --git a/src/msw/gdiimage.cpp b/src/msw/gdiimage.cpp index eafa9af40f..99ffb48afc 100644 --- a/src/msw/gdiimage.cpp +++ b/src/msw/gdiimage.cpp @@ -54,15 +54,6 @@ #include "wx/listimpl.cpp" WX_DEFINE_LIST(wxGDIImageHandlerList); -// ---------------------------------------------------------------------------- -// auxiliary functions -// ---------------------------------------------------------------------------- - -#ifdef __WXWINCE__ -// Used in wxBMPFileHandler::LoadFile -HBITMAP wxLoadBMP(const wxString& filename) ; -#endif - // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -372,14 +363,8 @@ bool wxBMPFileHandler::LoadFile(wxBitmap *bitmap, wxDIB dib(name); - bool ok = dib.IsOk() && bitmap->CopyFromDIB(dib); - return ok; + return dib.IsOk() && bitmap->CopyFromDIB(dib); #else - WXHBITMAP hBitmap = (WXHBITMAP)wxLoadBMP(name); - if(hBitmap) { - bitmap->SetHBITMAP(hBitmap); - return true; - } return false; #endif } @@ -622,80 +607,3 @@ wxSize wxGetHiconSize(HICON hicon) #endif // __WXMICROWIN__ -#ifdef __WXWINCE__ -// Used in wxBMPFileHandler::LoadFile -HBITMAP wxLoadBMP(const wxString& filename) -{ - wxFile file; - if(!file.Open(filename)) - return 0; - - // The first part of the file contains the file header. - // This will tell us if it is a bitmap, how big the header is, and how big - // the file is. The header size in the file header includes the color table. - BITMAPFILEHEADER BmpFileHdr; - BITMAPINFO *pBmpInfo = (BITMAPINFO*)malloc(sizeof(BITMAPINFO)+255*sizeof(RGBQUAD)); - BYTE* pBits = 0; - HBITMAP hBitmap = 0; - - if(file.Read(&BmpFileHdr, sizeof(BmpFileHdr))==sizeof(BmpFileHdr) - && !strncmp((char*)&BmpFileHdr.bfType,"BM",2) - && file.Read(pBmpInfo, sizeof(BITMAPINFOHEADER))==sizeof(BITMAPINFOHEADER) - && pBmpInfo->bmiHeader.biSize == sizeof(BITMAPINFOHEADER)) { - - - unsigned int nColors = pBmpInfo->bmiHeader.biClrUsed ? - pBmpInfo->bmiHeader.biClrUsed : 1 << pBmpInfo->bmiHeader.biBitCount; - if (nColors < 1 - || file.Read(pBmpInfo->bmiColors, nColors * sizeof(RGBQUAD)) - == (ssize_t)(nColors * sizeof(RGBQUAD))) { - - // So how big the bitmap surface is. - int nBitsSize = BmpFileHdr.bfSize - BmpFileHdr.bfOffBits; - - // Allocate the memory for the bits and read the bits from the file. - pBits = (BYTE*) malloc(nBitsSize*2); - if (pBits) { - // Seek to the bits in the file. - file.Seek(BmpFileHdr.bfOffBits); - - // read the bits - if(file.Read(pBits, nBitsSize)==nBitsSize) { - // Everything went OK. - pBmpInfo->bmiHeader.biSizeImage = nBitsSize; - - //HBITMAP hBitmap=SetBitmap((LPBITMAPINFO)pBmpInfo, pBits); - //DWORD dwBitmapInfoSize = sizeof(BITMAPINFO) + nColors*sizeof(RGBQUAD); - - // Create a DC which will be used to get DIB, then create DIBsection - HDC hDC = ::GetDC(NULL); - if (hDC) { - LPVOID bits; - hBitmap = CreateDIBSection(hDC, (const BITMAPINFO*) pBmpInfo, - DIB_RGB_COLORS, &bits, NULL, 0); - ReleaseDC(0,hDC); - - if (hBitmap) { - DWORD dwImageSize = pBmpInfo->bmiHeader.biSizeImage; - if (dwImageSize == 0) { - int nBytesPerLine = pBmpInfo->bmiHeader.biWidth * pBmpInfo->bmiHeader.biBitCount; - nBytesPerLine = ( (nBytesPerLine + 31) & (~31) ) / 8; - dwImageSize = nBytesPerLine * pBmpInfo->bmiHeader.biHeight; - } - memcpy(bits, pBits, dwImageSize); - } - } - } - } - } - } - - if(pBmpInfo) - free(pBmpInfo); - if(pBits) - free(pBits); - - return hBitmap; -} -#endif - -- 2.45.2