X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b030203c5926bd6af8bc310469c911f2143f7e1..31ad423e4fb556ec225a63b161154d3bf3445c1b:/src/cocoa/bitmap.mm diff --git a/src/cocoa/bitmap.mm b/src/cocoa/bitmap.mm index b9575fc890..2d335f5548 100644 --- a/src/cocoa/bitmap.mm +++ b/src/cocoa/bitmap.mm @@ -6,7 +6,7 @@ // Created: 2003/07/19 // RCS-ID: $Id$ // Copyright: (c) 2003 David Elliott -// Licence: wxWindows licence +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" @@ -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,wxT("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,wxT("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; @@ -362,8 +367,8 @@ wxBitmap wxBitmap::GetSubBitmap(wxRect const&) const wxImage wxBitmap::ConvertToImage() const { - if(!M_BITMAPDATA->m_ok) - return wxImage(5,5)/*wxNullImage*/; + if(!Ok()) + return /*wxImage(5,5)*/wxNullImage; return wxImage(M_BITMAPDATA->m_width,M_BITMAPDATA->m_height); } @@ -507,11 +512,11 @@ bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) return FALSE; } -template +template static bool wxMask_CreateFromBitmapData(PixelData srcData, const wxColour& colour, unsigned char *dstData) { wxCHECK_MSG(dstData,false,wxT("Couldn't access mask data")); - class PixelData::Iterator p(srcData); + typename PixelData::Iterator p(srcData); const int nRows = srcData.GetHeight(); const int nCols = srcData.GetWidth(); // Total number of bytes per destination column @@ -520,7 +525,7 @@ static bool wxMask_CreateFromBitmapData(PixelData srcData, const wxColour& colou const int width_aligned = nCols/8*8; for(int y=0; y0) + *dstByte = 0; for(int j=0; j<(nCols%8); ++j, ++p) { *dstByte +=