X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e21fc053d9017f79ad71675db8d2e1497049159..fc2d42090058bb7ebb9545b857a9a435ecbdd876:/src/cocoa/dcmemory.mm diff --git a/src/cocoa/dcmemory.mm b/src/cocoa/dcmemory.mm index fb11593b35..bf3920f49e 100644 --- a/src/cocoa/dcmemory.mm +++ b/src/cocoa/dcmemory.mm @@ -6,10 +6,11 @@ // Created: 2003/03/16 // RCS-ID: $Id$ // Copyright: (c) 2002 David Elliott -// Licence: wxWidgets licence +// Licence: wxWidgets licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" + #ifndef WX_PRECOMP #include "wx/log.h" #include "wx/dcmemory.h" @@ -29,10 +30,13 @@ IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxDC) -wxMemoryDC::wxMemoryDC(void) +wxMemoryDC::wxMemoryDC( const wxBitmap& bitmap ) { m_cocoaNSImage = NULL; m_ok = false; + + if ( bitmap.IsOk() ) + SelectObject(bitmap); } wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) @@ -53,7 +57,10 @@ bool wxMemoryDC::CocoaLockFocus() { [m_cocoaNSImage lockFocus]; sm_cocoaDCStack.Insert(this); - m_cocoaWxToBoundsTransform = CocoaGetWxToBoundsTransform([m_cocoaNSImage isFlipped], [m_cocoaNSImage size].height); + NSAffineTransform *newTransform = CocoaGetWxToBoundsTransform([m_cocoaNSImage isFlipped], [m_cocoaNSImage size].height); + [newTransform retain]; + [m_cocoaWxToBoundsTransform release]; + m_cocoaWxToBoundsTransform = newTransform; CocoaApplyTransformations(); return true; } @@ -100,7 +107,7 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) operation: NSCompositeCopy fraction: 1.0]; [m_cocoaNSImage unlockFocus]; - + [nsimage release]; } } @@ -146,7 +153,7 @@ bool wxMemoryDC::CocoaDoBlitOnFocusedDC(wxCoord xdest, wxCoord ydest, width, height) operation: NSCompositeCopy // FIXME: raster ops fraction: 1.0]; - + [context restoreGraphicsState]; return false; }