]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/bitmap.cpp
applying patch, fixes #10523
[wxWidgets.git] / src / mgl / bitmap.cpp
index ad2e0199a1724dff52c81991ab1f15a9e85c53d8..013e9f467428c2e83ffe0393235b56ebcbd2b41c 100644 (file)
@@ -64,6 +64,7 @@ static pixel_format_t gs_pixel_format_wxImage =
 class wxBitmapRefData: public wxGDIRefData
 {
 public:
+    wxBitmapRefData();
     wxBitmapRefData(int width, int height, int bpp);
     wxBitmapRefData(const wxBitmapRefData& data);
     virtual ~wxBitmapRefData();
@@ -78,11 +79,15 @@ public:
     bitmap_t       *m_bitmap;
 
 private:
-    void DoCreateBitmap();
+    void DoCreateBitmap(int width, int height, int depth);
 };
 
-void wxBitmapRefData::DoCreateBitmap()
+void wxBitmapRefData::DoCreateBitmap(int width, int height, int depth)
 {
+    m_width = width;
+    m_height = height;
+    m_bpp = depth;
+
     pixel_format_t pf_dummy;
     pixel_format_t *pf;
     int mglDepth = depth;
@@ -122,28 +127,32 @@ void wxBitmapRefData::DoCreateBitmap()
     m_bitmap = MyMGL_createBitmap(width, height, mglDepth, pf);
 }
 
-wxBitmapRefData::wxBitmapRefData(int width, int height, int bpp)
+wxBitmapRefData::wxBitmapRefData()
 {
-    m_width = width;
-    m_height = height;
-    m_bpp = bpp;
+    m_width =
+    m_height =
+    m_bpp = 0;
 
     m_palette = NULL;
     m_mask = NULL;
 
-    DoCreateBitmap();
+    m_bitmap = NULL;
+}
+
+wxBitmapRefData::wxBitmapRefData(int width, int height, int bpp)
+{
+    DoCreateBitmap(width, height, bpp);
+
+    m_palette = NULL;
+    m_mask = NULL;
 }
 
 wxBitmapRefData::wxBitmapRefData(const wxBitmapRefData& data)
 {
-    m_width = data.m_width;
-    m_height = data.m_height;
-    m_bpp = data.m_bpp;
+    DoCreateBitmap(data.m_width, data.m_height, data.m_bpp);
 
     m_palette = NULL; // FIXME: should copy
     m_mask = NULL; // FIXME: should copy
-
-    DoCreateBitmap();
 }
 
 wxBitmapRefData::~wxBitmapRefData()
@@ -173,7 +182,7 @@ wxGDIRefData *wxBitmap::CreateGDIRefData() const
 
 wxGDIRefData *wxBitmap::CloneGDIRefData(const wxGDIRefData *data) const
 {
-    return new wxBitmapRefData(*wx_static_cast(const wxBitmapRefData *, data));
+    return new wxBitmapRefData(*static_cast<const wxBitmapRefData *>(data));
 }
 
 bool wxBitmap::Create(int width, int height, int depth)
@@ -314,7 +323,7 @@ int wxBitmap::GetDepth() const
 
 wxMask *wxBitmap::GetMask() const
 {
-    wxCHECK_MSG( Ok(), (wxMask *) NULL, wxT("invalid bitmap") );
+    wxCHECK_MSG( Ok(), NULL, wxT("invalid bitmap") );
 
     return M_BMPDATA->m_mask;
 }