X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/46421f24712450ce8d720d6552f08219e1eb5074..404b319a85dadd7decf7a5a5331020520031a41c:/src/generic/graphicc.cpp?ds=sidebyside diff --git a/src/generic/graphicc.cpp b/src/generic/graphicc.cpp index aa038f1cb2..5e7da3dcba 100644 --- a/src/generic/graphicc.cpp +++ b/src/generic/graphicc.cpp @@ -1404,7 +1404,7 @@ wxCairoBitmapData::wxCairoBitmapData( wxGraphicsRenderer* renderer, const wxBitm // fully transparent or fully opaque if (bmpSource.GetMask()) { - wxBitmap bmpMask = bmpSource.GetMaskBitmap(); + wxBitmap bmpMask = bmpSource.GetMask()->GetBitmap(); bufferFormat = CAIRO_FORMAT_ARGB32; data = (wxUint32*)m_buffer; wxNativePixelData @@ -2437,7 +2437,6 @@ wxGraphicsContext * wxCairoRenderer::CreateContext( const wxPrinterDC& dc) #if wxUSE_ENH_METAFILE wxGraphicsContext * wxCairoRenderer::CreateContext( const wxEnhMetaFileDC& WXUNUSED(dc) ) { - ENSURE_LOADED_OR_RETURN(NULL); return NULL; } #endif @@ -2456,7 +2455,6 @@ wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeContext( void * cont wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeWindow( void * window ) { - ENSURE_LOADED_OR_RETURN(NULL); #ifdef __WXGTK__ return new wxCairoContext(this, static_cast(window)); #else @@ -2468,13 +2466,13 @@ wxGraphicsContext * wxCairoRenderer::CreateContextFromNativeWindow( void * windo #if wxUSE_IMAGE wxGraphicsContext * wxCairoRenderer::CreateContextFromImage(wxImage& image) { + ENSURE_LOADED_OR_RETURN(NULL); return new wxCairoImageContext(this, image); } #endif // wxUSE_IMAGE wxGraphicsContext * wxCairoRenderer::CreateMeasuringContext() { - ENSURE_LOADED_OR_RETURN(NULL); #ifdef __WXGTK__ return CreateContextFromNativeWindow(gdk_get_default_root_window()); #else @@ -2493,8 +2491,8 @@ wxGraphicsContext * wxCairoRenderer::CreateContext( wxWindow* window ) wxGraphicsPath wxCairoRenderer::CreatePath() { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsPath); wxGraphicsPath path; + ENSURE_LOADED_OR_RETURN(path); path.SetRefData( new wxCairoPathData(this) ); return path; } @@ -2506,8 +2504,8 @@ wxGraphicsMatrix wxCairoRenderer::CreateMatrix( wxDouble a, wxDouble b, wxDouble wxDouble tx, wxDouble ty) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsMatrix); wxGraphicsMatrix m; + ENSURE_LOADED_OR_RETURN(m); wxCairoMatrixData* data = new wxCairoMatrixData( this ); data->Set( a,b,c,d,tx,ty ) ; m.SetRefData(data); @@ -2516,28 +2514,24 @@ wxGraphicsMatrix wxCairoRenderer::CreateMatrix( wxDouble a, wxDouble b, wxDouble wxGraphicsPen wxCairoRenderer::CreatePen(const wxPen& pen) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsPen); - if ( !pen.IsOk() || pen.GetStyle() == wxPENSTYLE_TRANSPARENT ) - return wxNullGraphicsPen; - else + wxGraphicsPen p; + ENSURE_LOADED_OR_RETURN(p); + if (pen.IsOk() && pen.GetStyle() != wxPENSTYLE_TRANSPARENT) { - wxGraphicsPen p; p.SetRefData(new wxCairoPenData( this, pen )); - return p; } + return p; } wxGraphicsBrush wxCairoRenderer::CreateBrush(const wxBrush& brush ) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBrush); - if ( !brush.IsOk() || brush.GetStyle() == wxBRUSHSTYLE_TRANSPARENT ) - return wxNullGraphicsBrush; - else + wxGraphicsBrush p; + ENSURE_LOADED_OR_RETURN(p); + if (brush.IsOk() && brush.GetStyle() != wxBRUSHSTYLE_TRANSPARENT) { - wxGraphicsBrush p; p.SetRefData(new wxCairoBrushData( this, brush )); - return p; } + return p; } wxGraphicsBrush @@ -2545,8 +2539,8 @@ wxCairoRenderer::CreateLinearGradientBrush(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2, const wxGraphicsGradientStops& stops) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBrush); wxGraphicsBrush p; + ENSURE_LOADED_OR_RETURN(p); wxCairoBrushData* d = new wxCairoBrushData( this ); d->CreateLinearGradientBrush(x1, y1, x2, y2, stops); p.SetRefData(d); @@ -2558,8 +2552,8 @@ wxCairoRenderer::CreateRadialGradientBrush(wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc, wxDouble r, const wxGraphicsGradientStops& stops) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBrush); wxGraphicsBrush p; + ENSURE_LOADED_OR_RETURN(p); wxCairoBrushData* d = new wxCairoBrushData( this ); d->CreateRadialGradientBrush(xo, yo, xc, yc, r, stops); p.SetRefData(d); @@ -2568,15 +2562,13 @@ wxCairoRenderer::CreateRadialGradientBrush(wxDouble xo, wxDouble yo, wxGraphicsFont wxCairoRenderer::CreateFont( const wxFont &font , const wxColour &col ) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsFont); + wxGraphicsFont p; + ENSURE_LOADED_OR_RETURN(p); if ( font.IsOk() ) { - wxGraphicsFont p; p.SetRefData(new wxCairoFontData( this , font, col )); - return p; } - else - return wxNullGraphicsFont; + return p; } wxGraphicsFont @@ -2585,24 +2577,21 @@ wxCairoRenderer::CreateFont(double sizeInPixels, int flags, const wxColour& col) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsFont); - wxGraphicsFont font; + ENSURE_LOADED_OR_RETURN(font); font.SetRefData(new wxCairoFontData(this, sizeInPixels, facename, flags, col)); return font; } wxGraphicsBitmap wxCairoRenderer::CreateBitmap( const wxBitmap& bmp ) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBitmap); + wxGraphicsBitmap p; + ENSURE_LOADED_OR_RETURN(p); if ( bmp.IsOk() ) { - wxGraphicsBitmap p; p.SetRefData(new wxCairoBitmapData( this , bmp )); - return p; } - else - return wxNullGraphicsBitmap; + return p; } #if wxUSE_IMAGE @@ -2623,12 +2612,15 @@ wxGraphicsBitmap wxCairoRenderer::CreateBitmapFromImage(const wxImage& image) wxImage wxCairoRenderer::CreateImageFromBitmap(const wxGraphicsBitmap& bmp) { - ENSURE_LOADED_OR_RETURN(wxNullImage); + wxImage image; + ENSURE_LOADED_OR_RETURN(image); const wxCairoBitmapData* const data = static_cast(bmp.GetGraphicsData()); + if (data) + image = data->ConvertToImage(); - return data ? data->ConvertToImage() : wxNullImage; + return image; } #endif // wxUSE_IMAGE @@ -2636,15 +2628,13 @@ wxImage wxCairoRenderer::CreateImageFromBitmap(const wxGraphicsBitmap& bmp) wxGraphicsBitmap wxCairoRenderer::CreateBitmapFromNativeBitmap( void* bitmap ) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBitmap); + wxGraphicsBitmap p; + ENSURE_LOADED_OR_RETURN(p); if ( bitmap != NULL ) { - wxGraphicsBitmap p; p.SetRefData(new wxCairoBitmapData( this , (cairo_surface_t*) bitmap )); - return p; } - else - return wxNullGraphicsBitmap; + return p; } wxGraphicsBitmap @@ -2654,9 +2644,9 @@ wxCairoRenderer::CreateSubBitmap(const wxGraphicsBitmap& WXUNUSED(bitmap), wxDouble WXUNUSED(w), wxDouble WXUNUSED(h)) { - ENSURE_LOADED_OR_RETURN(wxNullGraphicsBitmap); + wxGraphicsBitmap p; wxFAIL_MSG("wxCairoRenderer::CreateSubBitmap is not implemented."); - return wxNullGraphicsBitmap; + return p; } wxGraphicsRenderer* wxGraphicsRenderer::GetCairoRenderer()