X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7639882c1a0314b595a060d57073d0bf87cd358..d8812c6e0e780fb2dae99bc352c5061f58793e14:/src/msw/bitmap.cpp diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index 38a27a4092..1e8ff645c6 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -254,7 +254,7 @@ wxGDIImageRefData *wxBitmap::CreateData() const wxGDIRefData *wxBitmap::CloneGDIRefData(const wxGDIRefData *dataOrig) const { const wxBitmapRefData * - data = wx_static_cast(const wxBitmapRefData *, dataOrig); + data = static_cast(dataOrig); if ( !data ) return NULL; @@ -262,7 +262,7 @@ wxGDIRefData *wxBitmap::CloneGDIRefData(const wxGDIRefData *dataOrig) const // wxBitmapRefData using its copy ctor but instead it modifies this // bitmap itself and then returns its m_refData -- which works, of // course (except in !wxUSE_WXDIB), but is completely illogical - wxBitmap *self = wx_const_cast(wxBitmap *, this); + wxBitmap *self = const_cast(this); wxBitmapRefData *selfdata; #if wxUSE_WXDIB @@ -272,7 +272,7 @@ wxGDIRefData *wxBitmap::CloneGDIRefData(const wxGDIRefData *dataOrig) const wxDIB dib((HBITMAP)(data->m_hBitmap)); self->CopyFromDIB(dib); - selfdata = wx_static_cast(wxBitmapRefData *, m_refData); + selfdata = static_cast(m_refData); selfdata->m_hasAlpha = data->m_hasAlpha; } else @@ -842,14 +842,16 @@ bool wxBitmap::CreateFromImage(const wxImage& image, int depth, WXHDC hdc) return false; const bool hasAlpha = image.HasAlpha(); + + if (depth == -1) + depth = dib.GetDepth(); // store the bitmap parameters wxBitmapRefData * const refData = new wxBitmapRefData; refData->m_width = w; refData->m_height = h; refData->m_hasAlpha = hasAlpha; - refData->m_depth = depth == -1 ? (hasAlpha ? 32 : 24) - : depth; + refData->m_depth = depth; m_refData = refData;