X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be69f971c404a0260ab5e7c195182d267b893245..4bf45c9ecafa14b167ef0c911a83cd5cc8fba4d2:/include/wx/msw/dib.h diff --git a/include/wx/msw/dib.h b/include/wx/msw/dib.h index 011de9e1a2..0a9fd4587a 100644 --- a/include/wx/msw/dib.h +++ b/include/wx/msw/dib.h @@ -5,7 +5,7 @@ // Modified by: // Created: 03.03.03 (replaces the old file with the same name) // RCS-ID: $Id$ -// Copyright: (c) 1997-2003 wxWindows team +// Copyright: (c) 1997-2003 wxWidgets team // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -41,6 +41,10 @@ public: wxDIB(const wxBitmap& bmp) { Init(); (void)Create(bmp); } + // create a DIB from the Windows DDB + wxDIB(HBITMAP hbmp) + { Init(); (void)Create(hbmp); } + // load a DIB from file (any depth is supoprted here unlike above) // // as above, use IsOk() to see if the bitmap was loaded successfully @@ -50,6 +54,7 @@ public: // same as the corresponding ctors but with return value bool Create(int width, int height, int depth); bool Create(const wxBitmap& bmp); + bool Create(HBITMAP hbmp); bool Load(const wxString& filename); // dtor is not virtual, this class is not meant to be used polymorphically @@ -60,7 +65,7 @@ public: // ---------- #ifndef __WXWINCE__ - // create a bitmap compatiblr with the given HDC (or screen by default) and + // create a bitmap compatible with the given HDC (or screen by default) and // return its handle, the caller is responsible for freeing it (using // DeleteObject()) HBITMAP CreateDDB(HDC hdc = 0) const; @@ -98,13 +103,14 @@ public: // get raw pointer to bitmap bits, you should know what you do if you // decide to use it - void *GetData() const { DoGetObject(); return m_data; } + unsigned char *GetData() const + { DoGetObject(); return (unsigned char *)m_data; } // HBITMAP conversion // ------------------ - // these functions are only used by wxWindows internally right now, please + // these functions are only used by wxWidgets internally right now, please // don't use them directly if possible as they're subject to change #ifndef __WXWINCE__ @@ -194,6 +200,11 @@ private: // the case bool m_ownsHandle; + // if true, we have alpha, if false we don't (note that we can still have + // m_depth == 32 but the last component is then simply padding and not + // alpha) + bool m_hasAlpha; + // DIBs can't be copied wxDIB(const wxDIB&); @@ -209,6 +220,7 @@ void wxDIB::Init() { m_handle = 0; m_ownsHandle = true; + m_hasAlpha = false; m_data = NULL;