X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5575dacc5004176c5d617788bdffc5fc10b27436..ec2df34e27ba41f202ecbf096cdfed082a9ddb8f:/src/osx/carbon/dcscreen.cpp?ds=sidebyside diff --git a/src/osx/carbon/dcscreen.cpp b/src/osx/carbon/dcscreen.cpp index 3b9e51541a..c413eb1fe0 100644 --- a/src/osx/carbon/dcscreen.cpp +++ b/src/osx/carbon/dcscreen.cpp @@ -56,8 +56,7 @@ wxScreenDCImpl::wxScreenDCImpl( wxDC *owner ) : wxScreenDCImpl::~wxScreenDCImpl() { - delete m_graphicContext; - m_graphicContext = NULL; + wxDELETE(m_graphicContext); #if wxOSX_USE_COCOA_OR_IPHONE #else DisposeWindow((WindowRef) m_overlayWindow ); @@ -90,12 +89,23 @@ wxBitmap wxScreenDCImpl::DoGetAsBitmap(const wxRect *subrect) const if ( subrect ) srcRect = CGRectOffset( srcRect, -subrect->x, -subrect->y ) ; - CGImageRef image = grabViaOpenGL(kCGNullDirectDisplay, srcRect); + CGImageRef image = NULL; + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 + if ( UMAGetSystemVersion() >= 10.6) + { + image = CGDisplayCreateImage(kCGDirectMainDisplay); + } + else +#endif + { + image = grabViaOpenGL(kCGNullDirectDisplay, srcRect); + } wxASSERT_MSG(image, wxT("wxScreenDC::GetAsBitmap - unable to get screenshot.")); CGContextDrawImage(context, srcRect, image); - + CGImageRelease(image); CGContextRestoreGState(context);