Re: [Render] OpenType support in Pango



Werner LEMBERG <wl gnu org> writes:

> > I just checked the beginnings of OpenType support for Pango into
> > CVS.  This builds on top of the Pango Xrender/Xft code that I've
> > been working recently and consists of:
> > 
> >  - The OpenType Layout (GPOS/GSUB/GDEF) code from FreeType 1 ported
> >    to FreeType 2. (Quite a bit of work to port, but much, much
> >    easier than writing the table-reading code myself.)
> 
> You've used the current snapshot, haven't you?  1.3.1 lacks most of
> the GPOS code.
>
> >  - A simple Arabic shaper (again using some code from the
> >    FreeType 1 distro) that uses that shapes Arabic using
> >    the glue layer.
> 
> Ditto...  IIRC, I've fixed some rules

Yes, I used the latest code from the freetype/ module in CVS.
 
> > It's probably a day or so additional work to get positioning of
> > accents working. A really sophisticated use of OpenType like the
> > OpenType Indic spec would require considerably more work.
> 
> Have you checked ICU from IBM?  Maybe they've implemented the Unicode
> algorithm already (this is what Microsoft also uses).  Porting this to
> C shouldn't be too difficult.

When I last looked, ICU didn't really cover rendering, though perhaps
that has changed. But, in any case, code from ICU is, unfortunately, not
very useable for Pango due to license problems. (The IBM PL is
not GPL compatible.)

Pango actually has Indic rendering code for a large range of languages
usingn BDF fonts (thanks to Robert Brady), and this is again based
on the descriptions in the Unicode specfication, so that's probably
a good start.

I don't think that the amount of new code that needs to be written to
get the OT Indic spec working is actually that big, the reason why I
think it is a significant amount of work (a week or two, anyways) is
that there are a lot of things that can go wrong:

 - It has a large number of lookups that interact in complex ways,

 - These lookups use quite a bit of the OpenType layout spec.

 - The set of languages that is covered is big so testing is hard.

 - There are certainly missing details from the spec that will
   take some experimentation to figure out.

But perhaps I'm wrong and it will all just work as soon as it is 
hooked up. It's not something I'm going to be able to tackle in
the forseeable future - just to many other things to do - but
hopefully someone else will try it and see how it goes.

Regards,
                                        Owen




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]