Re: Pango-1.0.0 released

Arnaud Le Taillanter <arnaud lt free fr> writes:

> Owen Taylor wrote:
> > 
> > Pango is designed to be modular; the core Pango layout can be used
> > with four different font backends:
> I miss a documentation on the Pango design/rationale.
> What choices were made, what the rationale is, what other APIs have
> been explored (NT, Apple, IBM, QT), what the differences are.

I looked carefully at the Microsoft, Apple, and ICU, API's when
working on Pango, along with other systems such as Java and the OSF's
Complex Text Layout API. Qt didn't have anything equivalent when I did
the design work for Pango.

> How the
> code is modularized.  What is working. What is not. What critics the
> Pango designers have received on their design. Why they think the design
> will cover the needs. What concessions had to be made etc...

The paper and slides in:

may be useful to you; it certainly doesn't cover all the questions above,
but it should get your oriented.

If you browse the archives of this mailing list, most of the design
discussion about Pango occurred here.

> For example, in the font API, I wonder why in a core i18n library I find
> references to typical western font properties: PangoStyle is NORMAL,

The Pango style properties closely follow those in CSS2.

Note that most languages that don't follow the western model simply
don't have equivalent ideas of multiple styles of writing that are
mixed in a single text. There may be distinct styles of writing (e.g.,
the multiple styles of Arabic), but they aren't used in the same way...
as variants of a single font.

> >  - Client-side fonts on X using the Xft library
> >  - Direct rendering of scalable fonts using the FreeType library
> >  - Native fonts on Microsoft backends
> > 
> > Dynamically loaded modules then handle text layout for particular
> > combinations of script and font backend. Pango-1.0.0 ships with a wide
> > selection of modules, including modules for Hebrew, Arabic, Hangul, 
> > Thai, and a number of Indic scripts. Virtually all of the world's major 
> > scripts are supported.
> Even more interesting: what is not supported. Are there some scripts
> that can't be supported. What are the biggest problems encountered to
> date. Todo. Bugs. 

The only living script I know of that can't be supported within the
current framework is Mongolian, which is only written vertically. (Support
for Vertical text is planned, but will require additional API.)

There are some other scripts that could be supported within the current
framework fine, but the support hasn't yet been written ... for instance,

(Yes, these aren't "major scripts" by most people's definition...  the
"virtually all" in the statement quoted above was meant to be

TODO and bugs are kept in, product Pango. There are
some additional TODO items and details in the file TODO.xml in the
Pango distribution, which have yet to be moved into bugzilla. (Note
that some of the items in this file have in fact been done since.)

> > More information about Pango is available from
> This site is never updated. Last status report is from november 2000...

Most of the information on the site is less out of date than it might
appear; the design work for Pango was completed quite some time
ago. Unfortunately, time to write detailed status reports has been


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