[cairo] CAIRO_FORMAT_ARGB32 Usage Problem
scuri at tecgraf.puc-rio.br
Fri Sep 30 11:59:15 PDT 2011
Yes! Thank you!
I added both:
cairo_surface_flush - before cairo_image_surface_get_data
cairo_surface_mark_dirty - after changing the data
And the problem was solved.
> -----Original Message-----
> From: Chris Wilson [mailto:chris at chris-wilson.co.uk]
> Sent: sexta-feira, 30 de setembro de 2011 15:43
> To: Antonio Scuri; cairo at cairographics.org
> Subject: Re: [cairo] CAIRO_FORMAT_ARGB32 Usage Problem
> On Fri, 30 Sep 2011 14:31:34 -0300, "Antonio Scuri" <scuri at tecgraf.puc-
> rio.br> wrote:
> > Hi,
> > I'm successfully using Cairo in X-Windows, GDK and Win32 with the
> > functions:
> > cairo_xlib_surface_create
> > gdk_cairo_create
> > cairo_win32_surface_create
> > To draw an image I use:
> > cairo_image_surface_create
> cairo_surface_flush // redundant in this case, but stated for pedagology
> > cairo_image_surface_get_data
> > cairo_set_source_surface
> > cairo_paint
> > Everything works fine. But I have 24bpp and 32bpp images, so I use
> > CAIRO_FORMAT_RGB24 and CAIRO_FORMAT_ARGB32 accordingly.
> > In Cairo 1.8 both flags were working fine, but in Cairo 1.10 the flag
> > CAIRO_FORMAT_ARGB32 causes "cairo_paint" to draw nothing. This
> > occurs is all the systems mentioned above. Other primitives work fine.
> It sounds like the problem is that you modified the data without informing
> Cairo, so it continues to assume that it had the same value as before
> (which is all-clear). The secret is that cairo does and always has
> expected you to mark any part of the surface that you externally modify
> (that is manipulate directly and not through the cairo surface) as dirty.
> Chris Wilson, Intel Open Source Technology Centre
More information about the cairo