> >For instance, Doulos SIL has considerable internal leading. When the app
> >requests a 20 point font, this translates into 26 pixels on a typical
> >device. The LOGFONT gets the value -26 to request the height of the
> >But the resulting font has an ascent of 30 pixels and a descent of 10
> >pixels, which is actually 40 pixels in height.
> >My question is: is there a need for a height method that returns the
> >that was originally used to set up the internal font, as opposed to
> >ascent+descent? Is there any need for the client app to get this
> >information back from the font? If so, is there a better name? Like:
> My first question is: what information does Graphite need to query from
> the font? We aren't writing a generalised font querying API here. If
> people want that, they can create a subclass with all the extra methods
> in, etc. So, assuming Graphite needs to know the em square, then we only
> need an em square querying API. I think that the exta ascent information
> in GDL was a wrong way to go and should be deprecated.
Okay, so I should just implement what the Graphite engine needs? Well, that
makes it easy.
I guess I'm still a little confused about the purpose of having both the
getFontMetrics method (which Tim originally marked "protected") and the
ascent, descent, and height methods (which Tim called "public"). I gather
from what Tim said that the protected methods are the ones that the various
subclasses of Font should implement, and the public methods are the ones
that the Graphite engine calls? If were the case, then we need a public
emSquare method for sure. But doesn't totally make sense to me because
Graphite definitely needs to directly call some of the other methods Tim
called "protected"--getTable, getGlyphMetrics, getGlyphPoint.