[cairo] invalid size error, nth ping
Paolo Bonzini
bonzini at gnu.org
Mon Jan 12 00:36:37 PST 2009
> I'll pull these later. Thanks.
Thanks!
>> Commentary on my cache branch, as usual, would also be nice. :-)
>
> I'll take another look since once again I'm in a situation where some
> internal caching of server-side resources would be useful. However the
> question remains is this Cairo's responsibility? We provide a similar
> surface so that the application can cache as much as it deems necessary,
> what further mechanism should Cairo possess? Anyway I promise to look at
> your caching infrastructure again and see if helps with my problem. ;-)
Yes, the problem (even before discussing the API) is whether it is
needed at all. I think there is some contrast between the backend
people and the device-independent people on this.
While it's true that cairo_surface_create_similar often simplifies the
creation of cached representations, I find that suboptimal. Code like
this (from cairogears, the cairo-glitz canonical demo; but it would
apply anyway to any other demo):
cairo_surface_t *image_surface;
image_surface = cairo_image_surface_create_from_png (name);
if (cairo_surface_status (image_surface))
return image_surface;
*width = cairo_image_surface_get_width (image_surface);
*height = cairo_image_surface_get_height (image_surface);
{
cairo_surface_t *glitz_surface;
cairo_t *cr;
glitz_surface = cairo_surface_create_similar (
cairo_get_target (glitz_target),
CAIRO_CONTENT_COLOR_ALPHA,
*width, *height);
cr = cairo_create (glitz_surface);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_surface (cr, image_surface, 0.0, 0.0);
cairo_paint (cr);
cairo_destroy (cr);
cairo_surface_destroy (image_surface);
return glitz_surface;
}
is plain ugly, but using image surfaces directly has a 10x performance
penalty. Everything in the braces could be replaced simply by
cairo_image_surface_set_cacheable (image_surface,
CAIRO_CACHE_ENABLE_AUTO);
return image_surface;
and still have the same performance.
>> I also have some patches to glitz.git with bugfixes, added documentation
>> and examples, support for 64-bit Mac OS and Cocoa, etc.; how can I get
>> them integrated? These are at
>> http://www.inf.unisi.ch/~bonzini/webdav/glitz.git in branch master.
>
> Who is responsible for glitz now?
Nicolas Bruguier was named responsible, but there were problems granting
him access to glitz.git. Also, I haven't heard from him in the last month.
> There's no shortage of good ideas in
> there - though not everything looks ideal for a i915 sadly. But it would
> be a shame to let it simply bitrot away, especially as we have people
> interested in using and fixing up cairo/glitz once more. It currently
> belongs to the xorg group - could we add a glitz group and start to add
> new maintainers/developers?
That would be great. For me it would be enough to get a freedesktop.org
so that I can publish my branches in a "more official" place (and with a
more stable URL).
Paolo
More information about the cairo
mailing list