[cairo] Very large number of lines
Arjen Nienhuis
a.g.nienhuis at gmail.com
Mon Aug 30 03:28:29 PDT 2010
cairo_stroke(cr);
std::cout << cairo_status(cr) << std::endl;
cairo_surface_finish(surface);
std::cout << cairo_status(cr) << std::endl;
cairo_surface_flush(surface);
std::cout << cairo_status(cr) << std::endl;
cairo_surface_destroy(surface);
std::cout << cairo_status(cr) << std::endl;
cairo_destroy(cr);
std::cout << cairo_status(cr) << std::endl;
gives me:
0
0
0
0
0
0
And there is plenty of memory. I did an strace and i ran it in gdb and there
are no errors. The pdf file is there without /Kids.
1 0 obj
<< /Type /Pages
/Kids [ ]
/Count 0
>>
endobj
2 0 obj
<< /Creator (cairo 1.8.10 (http://cairographics.org))
/Producer (cairo 1.8.10 (http://cairographics.org))
>>
On Mon, Aug 30, 2010 at 12:18 PM, Andrea Canciani <ranma42 at gmail.com> wrote:
> On Mon, Aug 30, 2010 at 12:04 PM, Arjen Nienhuis <a.g.nienhuis at gmail.com>
> wrote:
> > Hi,
> > If you stroke each line you need (on my system) 500 bytes per line. That
> > would be 10GB RAM. I don't have that. You can use swap (and you need 64
> > bits), but it will be very slow.
> > If you try to create a path with 20 milion subpaths, cairo will fail
> > silently(!!!) which I think is a bug.
> It doesn't fail silently. Check the status of cr after cairo_stroke.
> It will say that
> you don't have enough memory (CAIRO_STATUS_NO_MEMORY).
> You might also want to check the status after finishing the surface
> (before destroying it).
> Andrea
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20100830/82e1e402/attachment.htm>
More information about the cairo
mailing list