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:

 http://people.redhat.com/otaylor/ols2001/

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,
> ITALIC or OBLIQUE. PangoVariant is NORMAL or SMALL_CAPS.

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,
Syriac. 

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

TODO and bugs are kept in bugzilla.gnome.org, 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 http://www.pango.org/.
> 
> 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
lacking.

Regards,
                                        Owen



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