From 00ae2ece4acbf301b19c9faf4c0d61ef07af8e92 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Thu, 4 Oct 2007 07:30:43 +0000 Subject: [PATCH] adding PICT support in Quartz - whose native metafile format is PDF git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@49033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/bitmap.cpp | 2 +- src/mac/carbon/metafile.cpp | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/mac/carbon/bitmap.cpp b/src/mac/carbon/bitmap.cpp index 1385a58cb2..c2ebd2b1d4 100644 --- a/src/mac/carbon/bitmap.cpp +++ b/src/mac/carbon/bitmap.cpp @@ -1857,7 +1857,7 @@ bool wxPICTResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, lon { wxMetafile mf ; - mf.SetHMETAFILE( (WXHMETAFILE) thePict ) ; + mf.SetPICT( thePict ) ; bitmap->Create( mf.GetWidth() , mf.GetHeight() ) ; wxMemoryDC dc ; dc.SelectObject( *bitmap ) ; diff --git a/src/mac/carbon/metafile.cpp b/src/mac/carbon/metafile.cpp index bb1469041f..4c5e537e39 100644 --- a/src/mac/carbon/metafile.cpp +++ b/src/mac/carbon/metafile.cpp @@ -272,6 +272,27 @@ void wxMetafile::SetHMETAFILE(WXHMETAFILE mf) #endif } +void wxMetafile::SetPICT(void* pictHandle) +{ + UnRef(); + +#if wxMAC_USE_CORE_GRAPHICS + Handle picHandle = (Handle) pictHandle; + HLock(picHandle); + CFDataRef data = CFDataCreateWithBytesNoCopy( kCFAllocatorDefault, (const UInt8*) *picHandle, GetHandleSize(picHandle), kCFAllocatorNull); + wxCFRef provider(UMACGDataProviderCreateWithCFData(data)); + QDPictRef pictRef = QDPictCreateWithProvider(provider); + CGRect rect = QDPictGetBounds(pictRef); + m_refData = new wxMetafileRefData( rect.size.width, rect.size.height ); + QDPictDrawToCGContext( ((wxMetafileRefData*) m_refData)->GetContext(), rect, pictRef ); + CFRelease( data ); + QDPictRelease( pictRef ); + ((wxMetafileRefData*) m_refData)->Close(); +#else + m_refData = new wxMetafileRefData((PicHandle)mf); +#endif +} + bool wxMetaFile::Play(wxDC *dc) { if (!m_refData)