]>
git.saurik.com Git - wxWidgets.git/blob - src/palmos/dib.cpp
   1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        src/palmos/dib.cpp 
   3 // Purpose:     implements wxDIB class 
   4 // Author:      William Osborne - minimal working wxPalmOS port 
   8 // Copyright:   (c) William Osborne 
   9 // License:     wxWindows licence 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 // ============================================================================ 
  14 // ============================================================================ 
  16 // ---------------------------------------------------------------------------- 
  18 // ---------------------------------------------------------------------------- 
  20 // For compilers that support precompilation, includes "wx.h". 
  21 #include "wx/wxprec.h" 
  30     #include "wx/string.h" 
  33     #include "wx/bitmap.h" 
  39 #include "wx/palmos/dib.h" 
  41 // ---------------------------------------------------------------------------- 
  43 // ---------------------------------------------------------------------------- 
  45 // calculate the number of palette entries needed for the bitmap with this 
  46 // number of bits per pixel 
  47 static inline WORD 
GetNumberOfColours(WORD bitsPerPixel
) 
  49     // only 1, 4 and 8bpp bitmaps use palettes (well, they could be used with 
  50     // 24bpp ones too but we don't support this as I think it's quite uncommon) 
  51     return bitsPerPixel 
<= 8 ? 1 << bitsPerPixel 
: 0; 
  54 // wrapper around ::GetObject() for DIB sections 
  55 static inline bool GetDIBSection(HBITMAP hbmp
, DIBSECTION 
*ds
) 
  57     // note that at least under Win9x (this doesn't seem to happen under Win2K 
  58     // but this doesn't mean anything, of course), GetObject() may return 
  59     // sizeof(DIBSECTION) for a bitmap which is *not* a DIB section and the way 
  60     // to check for it is by looking at the bits pointer 
  61     return ::GetObject(hbmp
, sizeof(DIBSECTION
), ds
) == sizeof(DIBSECTION
) && 
  65 // ============================================================================ 
  67 // ============================================================================ 
  69 // ---------------------------------------------------------------------------- 
  71 // ---------------------------------------------------------------------------- 
  73 bool wxDIB::Create(int width
, int height
, int depth
) 
  78 bool wxDIB::Create(const wxBitmap
& bmp
) 
  83 bool wxDIB::CopyFromDDB(HBITMAP hbmp
) 
  89 // ---------------------------------------------------------------------------- 
  90 // Loading/saving the DIBs 
  91 // ---------------------------------------------------------------------------- 
  93 bool wxDIB::Load(const wxString
& filename
) 
  98 bool wxDIB::Save(const wxString
& filename
) 
 103 // ---------------------------------------------------------------------------- 
 105 // ---------------------------------------------------------------------------- 
 107 void wxDIB::DoGetObject() const 
 111 // ---------------------------------------------------------------------------- 
 112 // DDB <-> DIB conversions 
 113 // ---------------------------------------------------------------------------- 
 115 HBITMAP 
wxDIB::CreateDDB(HDC hdc
) const 
 121 HBITMAP 
wxDIB::ConvertToBitmap(const BITMAPINFO 
*pbmi
, HDC hdc
, void *bits
) 
 127 size_t wxDIB::ConvertFromBitmap(BITMAPINFO 
*pbi
, HBITMAP hbmp
) 
 133 HGLOBAL 
wxDIB::ConvertFromBitmap(HBITMAP hbmp
) 
 138 // ---------------------------------------------------------------------------- 
 140 // ---------------------------------------------------------------------------- 
 144 wxPalette 
*wxDIB::CreatePalette() const 
 149 #endif // wxUSE_PALETTE 
 151 // ---------------------------------------------------------------------------- 
 153 // ---------------------------------------------------------------------------- 
 157 bool wxDIB::Create(const wxImage
& image
) 
 162 wxImage 
wxDIB::ConvertToImage() const 
 167 #endif // wxUSE_IMAGE 
 169 #endif // wxUSE_WXDIB