X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2a8db3cddacf2c3fc244f109fdecbba3b0dfc386..06d4c4d65aa052a7586dd42bf0d558c46699b564:/src/cocoa/bitmap.mm diff --git a/src/cocoa/bitmap.mm b/src/cocoa/bitmap.mm index 97d7712b1e..6152fa12e8 100644 --- a/src/cocoa/bitmap.mm +++ b/src/cocoa/bitmap.mm @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/cocoa/bitmap.cpp +// Name: src/cocoa/bitmap.mm // Purpose: wxBitmap // Author: David Elliott // Modified by: @@ -10,15 +10,18 @@ ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" + +#include "wx/bitmap.h" + #ifndef WX_PRECOMP #include "wx/log.h" #include "wx/utils.h" #include "wx/palette.h" #include "wx/icon.h" #include "wx/colour.h" + #include "wx/image.h" #endif //WX_PRECOMP -#include "wx/bitmap.h" -#include "wx/image.h" + #include "wx/xpmdecod.h" #include "wx/rawbmp.h" @@ -299,7 +302,8 @@ bool wxBitmap::Create(int w, int h, int d) hasAlpha: NO isPlanar: NO colorSpaceName: NSCalibratedRGBColorSpace - bytesPerRow: 0 + bytesPerRow: 0 // NOTE: Contrary to Apple documentation Mac OS + // 10.4 will add padding bytes when 0 is used here bitsPerPixel: 0]; wxLogTrace(wxTRACE_COCOA,wxT("M_BITMAPDATA=%p NSBitmapImageRep bitmapData=%p"), M_BITMAPDATA, [M_BITMAPDATA->m_cocoaNSBitmapImageRep bitmapData]); @@ -414,11 +418,11 @@ bool wxBitmap::CreateFromXpm(const char **xpm) #if wxUSE_IMAGE && wxUSE_XPM UnRef(); - wxCHECK_MSG( xpm, false, wxT("invalid XPM data") ) + wxCHECK_MSG( xpm, false, wxT("invalid XPM data") ); wxXPMDecoder decoder; wxImage img = decoder.ReadData(xpm); - wxCHECK_MSG( img.Ok(), false, wxT("invalid XPM data") ) + wxCHECK_MSG( img.Ok(), false, wxT("invalid XPM data") ); *this = wxBitmap(img); return true; @@ -447,9 +451,11 @@ bool wxBitmap::CreateFromImage(const wxImage& image, int depth) hasAlpha: NO isPlanar: NO colorSpaceName: NSCalibratedRGBColorSpace - bytesPerRow: 0 + bytesPerRow: image.GetWidth()*3 bitsPerPixel: 0]; + // TODO: Specify bytesPerRow:0 and then use [bitmapImage bytesPerRow] + // so that the rows are aligned suitably for altivec by the OS (Tiger) const int numBytes = image.GetWidth()*image.GetHeight()*3; memcpy([bitmapImage bitmapData], image.GetData(), numBytes); // TODO: Alpha and convert to desired depth @@ -663,4 +669,3 @@ bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) m_cocoaNSBitmapImageRep = [maskRep retain]; return true; } -