]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/bitmap.mm
buttonbar.cpp/.h must be in GUI_CMN_SRC/HDR as toolbkg.cpp which is in common depends...
[wxWidgets.git] / src / cocoa / bitmap.mm
index 97d7712b1e484b2bbe8bbf99d04087552fd5f562..dd08e3387af500bd253589935d870e7789d3b897 100644 (file)
@@ -299,7 +299,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 +415,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 +448,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