// Purpose: wxBitmap class
// Author: Vaclav Slavik
// Created: 2006-08-04
-// RCS-ID: $Id$
// Copyright: (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#include "wx/dfb/dfbptr.h"
-wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
-
-//-----------------------------------------------------------------------------
-// wxMask
-//-----------------------------------------------------------------------------
-
-#warning "FIXME: move wxMask to common code"
-class WXDLLIMPEXP_CORE wxMask: public wxObject
-{
-public:
- wxMask();
- wxMask(const wxBitmap& bitmap);
- wxMask(const wxBitmap& bitmap, const wxColour& colour);
-#if wxUSE_PALETTE
- wxMask(const wxBitmap& bitmap, int paletteIndex);
-#endif
- wxMask(const wxMask& mask);
- ~wxMask();
-
- bool Create(const wxBitmap& bitmap);
- bool Create(const wxBitmap& bitmap, const wxColour& colour);
-#if wxUSE_PALETTE
- bool Create(const wxBitmap& bitmap, int paletteIndex);
-#endif
+class WXDLLIMPEXP_FWD_CORE wxPixelDataBase;
- // implementation
- const wxBitmap& GetBitmap() const;
-
-private:
- wxBitmap *m_bitmap;
-
- DECLARE_DYNAMIC_CLASS(wxMask)
-};
+wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
//-----------------------------------------------------------------------------
// wxBitmap
//-----------------------------------------------------------------------------
-class WXDLLIMPEXP_CORE wxBitmapHandler : public wxBitmapHandlerBase
-{
-public:
- wxBitmapHandler() : wxBitmapHandlerBase() {}
-private:
- DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
-};
-
-class WXDLLIMPEXP_CORE wxBitmap: public wxBitmapBase
+class WXDLLIMPEXP_CORE wxBitmap : public wxBitmapBase
{
public:
wxBitmap() {}
wxBitmap(const wxIDirectFBSurfacePtr& surface) { Create(surface); }
- wxBitmap(int width, int height, int depth = -1);
+ wxBitmap(int width, int height, int depth = -1) { Create(width, height, depth); }
+ wxBitmap(const wxSize& sz, int depth = -1) { Create(sz, depth); }
wxBitmap(const char bits[], int width, int height, int depth = 1);
- wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_RESOURCE);
- wxBitmap(const char **bits) { CreateFromXpm(bits); }
- wxBitmap(char **bits) { CreateFromXpm((const char **)bits); }
+ wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
+ wxBitmap(const char* const* bits);
#if wxUSE_IMAGE
wxBitmap(const wxImage& image, int depth = -1);
#endif
- bool Ok() const;
- bool operator==(const wxBitmap& bmp) const;
- bool operator!=(const wxBitmap& bmp) const { return !(*this == bmp); }
-
bool Create(const wxIDirectFBSurfacePtr& surface);
- bool Create(int width, int height, int depth = -1);
+ bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
+ bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH)
+ { return Create(sz.GetWidth(), sz.GetHeight(), depth); }
+ bool Create(int width, int height, const wxDC& WXUNUSED(dc))
+ { return Create(width,height); }
virtual int GetHeight() const;
virtual int GetWidth() const;
virtual wxBitmap GetSubBitmap(const wxRect& rect) const;
- virtual bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = (wxPalette *) NULL) const;
- virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_TYPE_RESOURCE);
+ virtual bool SaveFile(const wxString &name, wxBitmapType type,
+ const wxPalette *palette = NULL) const;
+ virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE);
#if wxUSE_PALETTE
virtual wxPalette *GetPalette() const;
static void InitStandardHandlers();
+ // raw bitmap access support functions
+ void *GetRawData(wxPixelDataBase& data, int bpp);
+ void UngetRawData(wxPixelDataBase& data);
+
+ bool HasAlpha() const;
+
// implementation:
virtual void SetHeight(int height);
virtual void SetWidth(int width);
wxIDirectFBSurfacePtr GetDirectFBSurface() const;
protected:
- bool CreateFromXpm(const char **bits);
+ virtual wxGDIRefData *CreateGDIRefData() const;
+ virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const;
- // ref counting code
- virtual wxObjectRefData *CreateRefData() const;
- virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const;
+ bool CreateWithFormat(int width, int height, int dfbFormat);
DECLARE_DYNAMIC_CLASS(wxBitmap)
};