From: Hazen B. <hba...@ma...> - 2007-06-05 01:19:45
|
On Jun 3, 2007, at 7:30 PM, Alan W. Irwin wrote: > On 2007-06-03 18:20-0400 Hazen Babcock wrote: > >> >> Hello, >> >> I've added the Cairo driver family to PLplot. This includes: >> >> xcairo (formally known as xwinttf). >> pdfcairo (PDF) >> pscairo (PS) >> svgcairo (SVG) >> pngcairo (PNG) >> memcairo (MEM) >> >> Known issues: >> 1. If you have Cairo but not X Windows your build will likely fail >> since I still haven't solved the pre-processor directive problem I >> mentioned Yesterday. >> 2. The svgcairo driver does not display text properly. I'm not really >> sure what to do about this one since it seems to be an issue with the >> cairo library. >> 3. The pngcairo driver does not support multiple pages. You only get >> one page, which is the last page that you drew. This could be fixed >> by having the driver generate multiple files, say my-graph.png, my- >> graph-2.png, etc... I don't think the PNG format itself supports >> multiple page output. > > That is correct. The way this is taken care of for the png device > (as well > as jpeg and gif) for gd.c is to use the normal PLplot familying > facility > (see > http://plplot.sourceforge.net/docbook-manual/plplot-html-5.7.3/ > output-devices.html#familying). > It's a bit tricky to set up, but if you follow what is done for > gd.c, you > should be fine. I thought you might have inadvertently set up > familying > already simply by following what is done in gd.c, but apparently > not since > the -fam command-line option only gives the same last page of > example 8 that > you get without the option. Ok. I'll implement this approach. >> 4. The memcairo driver is untested. It appears that a side effect of >> a call to plsmem is to force PLplot to use the "mem" driver. An >> attempt to overide this behavior by calling plsdev("memcairo") after >> the plsmem call but before plinit was unsuccessful. >> 5. Plots output by the pscairo driver do not fit the page, i.e. there >> is a largish white margin on two sides of a plot. >> >> All the drivers are off by default so you will have to turn them on >> to test them, if you are so inclined. > > I didn't bother with memcairo, but I built all the rest with no > build errors > on Ubuntu Dapper. > > I have only done the most superficial tests of the built results, > but I > immediately noticed two issues on Linux beyond what you mentioned. > > (1) the 'ldd -r cairo.so' test showed the > following problems: > > undefined symbol: cairo_ps_surface_create (./cairo.so) > undefined symbol: cairo_pdf_surface_create (./cairo.so) > undefined symbol: cairo_svg_surface_create (./cairo.so) > > It's fairly urgent to solve these problems since it excludes any > testing of > the pscairo, pdfcairo, or svgcairo devices on Linux. Maybe this is because I have Cairo v1.2.6 and debian testing is v1.2.4? According the cairo docs these functions have been in the library since 1.2. > (2) ./x08c -dev xcairo shows only the first page of that example. Hm. On OS-X I get a bus error. It is interesting that it works fine if you just type ./x08c and then choose the driver. -Hazen |