Around 17 o'clock on Apr 19, Raph Levien wrote:
> Right now, I'm basically trying to figure out what's involved. I
> have Keith's Guadec paper, and I saw some mail on the mailing list.
> The Guadec paper is a little too vague and high-level for me. I was
> not able to find the fontconfig manual, even though the paper promises
> that it's available.
The fontconfig manual is in the XFree86 CVS repository, at
xc/lib/fontconfig/src/fontconfig.man
I'm planning on making a separate fontconfig release after I've ironed
out a few remaining semantic issues with font directories. I'd also
prefer to wait until after testing with Ghostscript in case that requires
significant changes to the library.
> 1. Is it better for Ghostscript to link to the fontconfig library, or
> to parse the fontconfig files itself?
You can do either, but for font accessors, I'd prefer you to give the
library a try. I'm more than willing to modify the library as needed so
that it works for you.
> 2. I'm confused about whether fontconfig actually needs to open all
> the accessible fonts using FreeType. If so, there's a performance
> problem.
Fontconfig needs to gather information about the set of available fonts.
The original Xft implementation did this by opening all of the fonts every
time an application started. That's really way too slow, especially now
that fontconfig scans the entire font looking for blank glyphs and mapping
it's charset. So, fontconfig caches the data on disk. It uses two
caches, per-directory caches which are built with the 'fc-cache' program
and per-user caches which are automatically maintained by the library.
I plan on fixing fontconfig to use the directory and directory cache-file
mod-times to validate the cache contents; this will avoid problems when
the cache file is out of date.
> 3. It's pretty clear that fontconfig provides most of the functionality
> of Ghostscript's Fontmap. However, we're extending this functionality
> considerably. Is fontconfig powerful enough?
If it isn't, it can become so.
> There is also work in the HEAD branch that is designed to support
> substitution - particularly the use of TrueType fonts in contexts
> where the document calls for a Type1. I don't have a good reference
> for this. Igor Melichev is our primary developer. For those who are
> interested, querying on the gs-devel mailing list is probably the
> best idea.
Fontconfig has some substitution capabilities that are driven by the
configuration file; we should see if those are sufficient for your needs.
> Also, I'd like to add my voice against XML for the fontconfig file
> format. I used XML in gnome-font, and feel it didn't help in any
> significant way. We are reluctant to add an XML parser to the library
> dependencies for Ghostscript. A simple text format would be preferred.
A simple text format was tried in Xft and a disaster ensued. The basic
problem is that I have one consumer (fontconfig) and many producers (KDE,
Gnome, Mozilla) for the font configuration data. I need a way that those
GUI-based tools can modify the system font configuration without requiring
that they contain a complete (and up-to-date) parser for a custom language.
KDE ended up stealing the parser bits of Xft and integrating that into
their font configuration tool. This makes it impossible to extend the
syntax of the system in any substative way. It also made the
configuration somewhat brittle -- their configuration tool could handle
some of the file content but not all.
Using XML provides a simple extensible syntax that is easily parsed by the
library (using expat) and easily edited by GUI tools in a non-destructive
way (using libxml).
XFree86 includes versions of both libraries now, and if you use the
fontconfig library, the underlying use of XML would be hidden from your
application. I'm currently refactoring the XML support in fontconfig so
that it can be built against either expat or libxml2, that will reduce the
memory cost on systems already using libxml2 but not using expat.
> I'd like to harmonize with fontconfig, but I'm not yet convinced
> that it's a technically sound decision.
I'm more than willing to work with Ghostscript to make it possible to
share configuration; we've got a horrible mess out there today and I'm
more interested in fixing the problem than in selling my current snakeoil.
Keith Packard XFree86 Core Team Compaq Cambridge Research Lab
_______________________________________________
Render mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/render