removed GetBitmapForDC() and supporting functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1193,70 +1193,6 @@ bool wxBitmap::GetRawData(wxRawBitmapData *data)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// TODO: to be replaced by something better
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Creates a bitmap that matches the device context, from
|
||||
// an arbitray bitmap. At present, the original bitmap must have an
|
||||
// associated palette. TODO: use a default palette if no palette exists.
|
||||
// Contributed by Frederic Villeneuve <frederic.villeneuve@natinst.com>
|
||||
wxBitmap wxBitmap::GetBitmapForDC(wxDC& dc) const
|
||||
{
|
||||
#ifdef __WXMICROWIN__
|
||||
return *this;
|
||||
#else
|
||||
wxMemoryDC memDC;
|
||||
wxBitmap tmpBitmap(GetWidth(), GetHeight(), dc.GetDepth());
|
||||
HPALETTE hPal = (HPALETTE) NULL;
|
||||
LPBITMAPINFO lpDib;
|
||||
void *lpBits = (void*) NULL;
|
||||
|
||||
#if wxUSE_PALETTE
|
||||
if( GetPalette() && GetPalette()->Ok() )
|
||||
{
|
||||
tmpBitmap.SetPalette(*GetPalette());
|
||||
memDC.SelectObject(tmpBitmap);
|
||||
memDC.SetPalette(*GetPalette());
|
||||
hPal = (HPALETTE)GetPalette()->GetHPALETTE();
|
||||
}
|
||||
else
|
||||
{
|
||||
hPal = (HPALETTE) ::GetStockObject(DEFAULT_PALETTE);
|
||||
wxPalette palette;
|
||||
palette.SetHPALETTE( (WXHPALETTE)hPal );
|
||||
tmpBitmap.SetPalette( palette );
|
||||
memDC.SelectObject(tmpBitmap);
|
||||
memDC.SetPalette( palette );
|
||||
}
|
||||
#else // !wxUSE_PALETTE
|
||||
hPal = (HPALETTE) ::GetStockObject(DEFAULT_PALETTE);
|
||||
#endif // wxUSE_PALETTE/!wxUSE_PALETTE
|
||||
|
||||
// set the height negative because in a DIB the order of the lines is
|
||||
// reversed
|
||||
if ( !wxCreateDIB(GetWidth(), -GetHeight(), GetDepth(), hPal, &lpDib) )
|
||||
{
|
||||
return wxNullBitmap;
|
||||
}
|
||||
|
||||
lpBits = malloc(lpDib->bmiHeader.biSizeImage);
|
||||
|
||||
::GetBitmapBits(GetHbitmap(), lpDib->bmiHeader.biSizeImage, lpBits);
|
||||
|
||||
::SetDIBitsToDevice(GetHdcOf(memDC), 0, 0,
|
||||
GetWidth(), GetHeight(),
|
||||
0, 0, 0, GetHeight(),
|
||||
lpBits, lpDib, DIB_RGB_COLORS);
|
||||
|
||||
free(lpBits);
|
||||
|
||||
wxFreeDIB(lpDib);
|
||||
|
||||
return tmpBitmap;
|
||||
#endif
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxMask
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user