From: David Elliott Date: Tue, 9 Dec 2003 03:21:38 +0000 (+0000) Subject: Add support for wxMask creation from RGBx data (x=unused) X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ea3d4caf9923edbea430ba4ac11066076b24b1dd Add support for wxMask creation from RGBx data (x=unused) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24726 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/cocoa/bitmap.mm b/src/cocoa/bitmap.mm index c73bc16b68..de552f5435 100644 --- a/src/cocoa/bitmap.mm +++ b/src/cocoa/bitmap.mm @@ -565,12 +565,22 @@ bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) unsigned char *dstPlanes[5] = {NULL,NULL,NULL,NULL,NULL}; [maskRep getBitmapDataPlanes:dstPlanes]; unsigned char *dstData = dstPlanes[1]; + // The wxImage format (which we use whenever we imported from wxImage) if([srcBitmapRep bitsPerPixel]==24 && [srcBitmapRep bitsPerSample]==8 && [srcBitmapRep samplesPerPixel]==3 && [srcBitmapRep hasAlpha]==NO) { wxPixelData pixelData(const_cast(bitmap)); wxCHECK_MSG(wxMask_CreateFromBitmapData(pixelData, colour, dstData), false, "Unable to access raw data"); } + // 32-bpp RGBx (x=throw away, no alpha) + else if([srcBitmapRep bitsPerPixel]==32 && [srcBitmapRep bitsPerSample]==8 && [srcBitmapRep samplesPerPixel]==3 && [srcBitmapRep hasAlpha]==NO) + { + typedef wxPixelFormat PixelFormat; + wxPixelData pixelData(const_cast(bitmap)); + wxCHECK_MSG(wxMask_CreateFromBitmapData(pixelData, colour, dstData), + false, "Unable to access raw data"); + } + // 32-bpp RGBA else if([srcBitmapRep bitsPerPixel]==32 && [srcBitmapRep bitsPerSample]==8 && [srcBitmapRep samplesPerPixel]==4 && [srcBitmapRep hasAlpha]==YES) { wxPixelData pixelData(const_cast(bitmap));