/////////////////////////////////////////////////////////////////////////////
-// Name: src/cocoa/bitmap.cpp
+// Name: src/cocoa/bitmap.mm
// Purpose: wxBitmap
// Author: David Elliott
// Modified by:
/////////////////////////////////////////////////////////////////////////////
#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"
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]);
#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;
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
m_cocoaNSBitmapImageRep = [maskRep retain];
return true;
}
-