+ virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
+ virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH)
+ { return Create(sz.GetWidth(), sz.GetHeight(), depth); }
+
+ virtual bool Create(int width, int height, const wxDC& dc);
+ virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1);
+ virtual bool CreateScaled(int w, int h, int d, double logicalScale)
+ { return Create(wxRound(w*logicalScale), wxRound(h*logicalScale), d); }
+
+ virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
+ virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const;
+
+ wxBitmapRefData *GetBitmapData() const
+ { return (wxBitmapRefData *)m_refData; }
+
+ // raw bitmap access support functions
+ void *GetRawData(wxPixelDataBase& data, int bpp);
+ void UngetRawData(wxPixelDataBase& data);
+
+#if wxUSE_PALETTE
+ wxPalette* GetPalette() const;
+ void SetPalette(const wxPalette& palette);
+#endif // wxUSE_PALETTE
+
+ wxMask *GetMask() const;
+ void SetMask(wxMask *mask);
+
+ // these functions are internal and shouldn't be used, they risk to
+ // disappear in the future
+ bool HasAlpha() const;
+ void UseAlpha();
+
+ // support for scaled bitmaps
+ virtual double GetScaleFactor() const { return 1.0; }
+ virtual double GetScaledWidth() const { return GetWidth() / GetScaleFactor(); }
+ virtual double GetScaledHeight() const { return GetHeight() / GetScaleFactor(); }
+ virtual wxSize GetScaledSize() const
+ { return wxSize(wxRound(GetScaledWidth()), wxRound(GetScaledHeight())); }
+
+ // implementation only from now on
+ // -------------------------------