added alpha channel support to wxGTK2's wxBitmap

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2004-08-21 22:42:06 +00:00
parent 4fab71288e
commit feac79373c
7 changed files with 1641 additions and 1146 deletions

View File

@@ -21,6 +21,10 @@
#include "wx/palette.h"
#include "wx/gdiobj.h"
#ifdef __WXGTK20__
typedef struct _GdkPixbuf GdkPixbuf;
#endif
//-----------------------------------------------------------------------------
// classes
//-----------------------------------------------------------------------------
@@ -109,9 +113,17 @@ public:
void SetDepth( int depth );
void SetPixmap( GdkPixmap *pixmap );
void SetBitmap( GdkBitmap *bitmap );
#ifdef __WXGTK20__
void SetPixbuf(GdkPixbuf *pixbuf);
#endif
GdkPixmap *GetPixmap() const;
GdkBitmap *GetBitmap() const;
bool HasPixmap() const;
#ifdef __WXGTK20__
bool HasPixbuf() const;
GdkPixbuf *GetPixbuf() const;
#endif
// Basically, this corresponds to Win32 StretchBlt()
wxBitmap Rescale( int clipx, int clipy, int clipwidth, int clipheight, int width, int height );
@@ -120,6 +132,25 @@ protected:
bool CreateFromImage(const wxImage& image, int depth);
private:
// to be called from CreateFromImage only!
bool CreateFromImageAsBitmap(const wxImage& image);
bool CreateFromImageAsPixmap(const wxImage& image);
#ifdef __WXGTK20__
bool CreateFromImageAsPixbuf(const wxImage& image);
enum Representation
{
Pixmap,
Pixbuf
};
// removes other representations from memory, keeping only 'keep'
// (wxBitmap may keep same bitmap e.g. as both pixmap and pixbuf):
void PurgeOtherRepresentations(Representation keep);
friend class wxMemoryDC;
#endif
DECLARE_DYNAMIC_CLASS(wxBitmap)
};