X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8462a84b2caab30265823ebbdbdfc7cff91486e6..12cc077e68bd83587bd00e957d54ed5682a808b7:/src/common/dcgraph.cpp diff --git a/src/common/dcgraph.cpp b/src/common/dcgraph.cpp index 94a541d21c..66a531bb47 100644 --- a/src/common/dcgraph.cpp +++ b/src/common/dcgraph.cpp @@ -172,7 +172,15 @@ wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ) : wxDCImpl( owner ) { Init(); - SetGraphicsContext( wxGraphicsContext::Create(dc) ); + wxGraphicsContext* context; +#if wxUSE_CAIRO + wxGraphicsRenderer* renderer = wxGraphicsRenderer::GetCairoRenderer(); + context = renderer->CreateContext(dc); +#else + context = wxGraphicsContext::Create(dc); +#endif + + SetGraphicsContext( context ); } #if wxUSE_PRINTING_ARCHITECTURE @@ -195,7 +203,7 @@ void wxGCDCImpl::Init() m_font = *wxNORMAL_FONT; m_brush = *wxWHITE_BRUSH; - m_graphicContext = NULL; + m_graphicContext = wxGraphicsContext::Create(); m_logicalFunctionSupported = true; } @@ -265,9 +273,7 @@ void wxGCDCImpl::EndPage() void wxGCDCImpl::Flush() { -#ifdef __WXOSX_OR_COCOA__ - CGContextFlush( (CGContextRef) m_graphicContext->GetNativeContext() ); -#endif + m_graphicContext->Flush(); } void wxGCDCImpl::DoSetClippingRegion( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) @@ -499,7 +505,7 @@ void wxGCDCImpl::SetLogicalFunction( wxRasterOperationMode function ) if (m_logicalFunctionSupported) m_logicalFunctionSupported = m_graphicContext->SetCompositionMode(mode); - if (mode == wxCOMPOSITION_XOR) + if ( function == wxXOR ) m_graphicContext->SetAntialiasMode(wxANTIALIAS_NONE); else m_graphicContext->SetAntialiasMode(wxANTIALIAS_DEFAULT); @@ -975,7 +981,7 @@ void wxGCDCImpl::DoGetTextExtent( const wxString &str, wxCoord *width, wxCoord * wxCoord *descent, wxCoord *externalLeading , const wxFont *theFont ) const { - wxCHECK_RET( IsOk(), wxT("wxGCDC(cg)::DoGetTextExtent - invalid DC") ); + wxCHECK_RET( m_graphicContext, wxT("wxGCDC(cg)::DoGetTextExtent - invalid DC") ); if ( theFont ) { @@ -1003,7 +1009,7 @@ void wxGCDCImpl::DoGetTextExtent( const wxString &str, wxCoord *width, wxCoord * bool wxGCDCImpl::DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const { - wxCHECK_MSG( IsOk(), false, wxT("wxGCDC(cg)::DoGetPartialTextExtents - invalid DC") ); + wxCHECK_MSG( m_graphicContext, false, wxT("wxGCDC(cg)::DoGetPartialTextExtents - invalid DC") ); widths.Clear(); widths.Add(0,text.Length()); if ( text.IsEmpty() )