]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/bitmap.mm
Updated the C++ code for wx.gizmos.TreeListCtrl from the wxCode
[wxWidgets.git] / src / cocoa / bitmap.mm
index 97d7712b1e484b2bbe8bbf99d04087552fd5f562..6152fa12e8abcdbd8f6b5cad5080ff7e4aa6b306 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// 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"
 
@@ -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;
 }
-