[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft] ftmac.c
From: |
Ryan Schmidt |
Subject: |
Re: [ft] ftmac.c |
Date: |
Mon, 19 Jan 2009 18:35:53 -0600 |
On Jan 19, 2009, at 09:07, address@hidden wrote:
I want to remove modern src/base/ftmac.c for Mac OS X, and
I want to keep legacy builds/mac/ftmac.c for pre-Mac OS X.
The QuickDraw API on pre-Mac OS X won't be changed anymore,
so the future changes of builds/mac/ftmac.c would be only
bug fix. On the other hand, if we keep src/base/ftmac.c
synchronized to Mac OS X, there are too many issues:
* Since Mac OS X 10.5, CoreFoundation is announced to be
danger in Unix-like programs which can fork. So Carbon-free
implementation is expected. This is the most serious
motivation to obsolete src/base/ftmac.c.
http://lists.nongnu.org/archive/html/freetype/2007-11/msg00000.html
Agreed, this is a problem. In MacPorts we had been using --with-old-
mac-fonts at a user's request, but we've had to remove that option on
Leopard and up to work around this problem.
http://trac.macports.org/ticket/15909
* As I've shown my experiment with "partial stream", it
is possible to reduce the memory allocation & maximum
footprint to handle resource-fork font by POSIX API only.
* At present, FT2 has some interfaces to ATS font management.
it was originally introduced by me to provide a migration
from obsolete QuickDraw font management to modern one, but
it is completely wrong decision. Now it should be replaced
by CGFont for newer Mac OS X, the introduction of ATS to
FT2 was wrong decision. Also as you posted 64-bit issue of
cairo/pango universal binary, it is difficult to select
popular API which are available on all architechtures of
Mac OS X.
It does sound difficult. The Mac OS X font APIs seem to be changing
often. Hopefully CGFont will be the one that sticks. But that's only
on Leopard and newer, right? Will you keep ATS for Tiger and earlier
then?
Thus, I want to remove src/base/ftmac.c. I want to provide
Carbon-free implementation which keeps user-visibile behaviour
of FT_New_Face in ftmac.c, but I want to remove all APIs
using Mac OS specific data types in their arguments, like,
FT_New_Face_From_{FSSpec|FSRef|FOND} etc.
How do you think of?
I don't write compiled software so I think you're more qualified than
I to make these decisions. :)