X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f8c10ed8b399f864a8ab7fafe4f73ae0365d4827..42497f30ebde52ebd530a3c252eec45791669287:/src/cocoa/bitmap.mm diff --git a/src/cocoa/bitmap.mm b/src/cocoa/bitmap.mm index bb7302cf8e..79ec8ebcf0 100644 --- a/src/cocoa/bitmap.mm +++ b/src/cocoa/bitmap.mm @@ -157,12 +157,17 @@ WX_NSImage wxBitmap::GetNSImage(bool useMask) const [nsimage addRepresentation: M_BITMAPDATA->m_cocoaNSBitmapImageRep]; if(useMask && GetMask()) { + // Show before/after to prove that the bitmap itself is not changed + // even though we just composited onto the NSImage + wxLogTrace(wxTRACE_COCOA,"Before: bpp=%d",[M_BITMAPDATA->m_cocoaNSBitmapImageRep bitsPerPixel]); NSImage *maskImage = [[NSImage alloc] initWithSize:NSMakeSize(GetWidth(), GetHeight())]; [maskImage addRepresentation: GetMask()->GetNSBitmapImageRep()]; [nsimage lockFocus]; [maskImage compositeToPoint:NSZeroPoint operation:NSCompositeDestinationIn]; [nsimage unlockFocus]; + [maskImage release]; + wxLogTrace(wxTRACE_COCOA,"After: bpp=%d",[M_BITMAPDATA->m_cocoaNSBitmapImageRep bitsPerPixel]); } return nsimage; } @@ -296,7 +301,7 @@ bool wxBitmap::Create(int w, int h, int d) bytesPerRow: 0 bitsPerPixel: 0]; - wxLogDebug(wxT("M_BITMAPDATA=%p NSBitmapImageRep bitmapData=%p"), M_BITMAPDATA, [M_BITMAPDATA->m_cocoaNSBitmapImageRep bitmapData]); + wxLogTrace(wxTRACE_COCOA,wxT("M_BITMAPDATA=%p NSBitmapImageRep bitmapData=%p"), M_BITMAPDATA, [M_BITMAPDATA->m_cocoaNSBitmapImageRep bitmapData]); M_BITMAPDATA->m_ok = true; M_BITMAPDATA->m_numColors = 0; M_BITMAPDATA->m_quality = 0; @@ -538,7 +543,8 @@ static bool wxMask_CreateFromBitmapData(PixelData srcData, const wxColour& colou } // Handle the remaining 0-7 pixels in the row unsigned char *dstByte = dstRow + width_aligned/8; - *dstByte = 0; + if(nCols%8>0) + *dstByte = 0; for(int j=0; j<(nCols%8); ++j, ++p) { *dstByte +=