case wxXOR: // src XOR dst
*op = wxCOMPOSITION_XOR;
break;
-
+
case wxAND: // src AND dst
case wxAND_INVERT: // (NOT src) AND dst
case wxAND_REVERSE:// src AND (NOT dst)
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
m_font = *wxNORMAL_FONT;
m_brush = *wxWHITE_BRUSH;
- m_graphicContext = NULL;
+ m_graphicContext = wxGraphicsContext::Create();
m_logicalFunctionSupported = true;
}
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 )
if ( f.IsOk() )
f.SetPointSize( /*LogicalToDeviceYRel*/(font.GetPointSize()));
m_graphicContext->SetFont( f, m_textForegroundColour );
-#if defined(__WXGTK__) || defined(__WXOSX__)
- if ( m_font.GetNoAntiAliasing() )
- {
- m_graphicContext->SetAntialiasMode(wxANTIALIAS_NONE);
- }
-#endif
}
}
return;
m_logicalFunction = function;
-
+
wxCompositionMode mode;
m_logicalFunctionSupported = TranslateRasterOp( function, &mode);
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);
}
bool wxGCDCImpl::DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y),
- const wxColour& WXUNUSED(col),
+ const wxColour& WXUNUSED(col),
wxFloodFillStyle WXUNUSED(style))
{
return false;
bool wxGCDCImpl::DoBlit(
wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
- wxDC *source, wxCoord xsrc, wxCoord ysrc,
+ wxDC *source, wxCoord xsrc, wxCoord ysrc,
wxRasterOperationMode logical_func , bool useMask,
wxCoord xsrcMask, wxCoord ysrcMask )
{
if ( logical_func == wxNO_OP )
return true;
-
+
wxCompositionMode mode;
if ( !TranslateRasterOp(logical_func, &mode) )
{
}
bool retval = true;
-
+
wxCompositionMode formerMode = m_graphicContext->GetCompositionMode();
if (m_graphicContext->SetCompositionMode(mode))
{
{
m_graphicContext->SetAntialiasMode(wxANTIALIAS_NONE);
}
-
+
if (xsrcMask == -1 && ysrcMask == -1)
{
xsrcMask = xsrc;
wxFAIL_MSG( wxT("Cannot Blit. Unable to get contents of DC as bitmap.") );
retval = false;
}
-
+
if (mode == wxCOMPOSITION_XOR)
{
m_graphicContext->SetAntialiasMode(formerAa);
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 )
{
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() )