Pango Status Report, 16 Feb 2000
- From: Owen Taylor <otaylor redhat com>
- To: gtk-i18n-list redhat com
- Subject: Pango Status Report, 16 Feb 2000
- Date: 16 Feb 2000 22:33:06 -0500
Pango Status Report #2 16 Feb 2000
======================================
General news:
No major news this week. Spent most of it on straight hacking
and documentation.
Recent progress:
In the last week, I first finished up the font API to handle
listing font styles nicely. pango-viewer now has a neat 3-widget
font selector at its top.
Then I tackled writing interfaces for attributed-text. You can find
a design document at:
http://www.pango.org/attributes.shtml
and API reference docs at:
http://www.pango.org/api/pango-text-attributes.html
The idea of the attributed text API is to have something that is
covers all the needs of the different components of Pango, and is
extensible enough
Once that was reasonably there, I changed the itemization process
to take attributed text as its input. In theory, Pango should
now be able to handle text with mutiple font styles without any
problem, though this has not been tested.
Unfortunately, the last step revealed gross memory inefficiencies
leaks, etc. Starting up pango-viewer on HELLO.utf8 took
140 megs and 5 minutes at the first cut... but with some memprof
action and cache-fu, I got it back down to the point where
it is at least as zippy and memory efficient as before. (A couple
of seconds, 2.5 megs.) Most of the memory usage at this point is
simply loading up the font metrics and conversion tables.
Releases:
Pango-0.7 is on available from www.pango.org. I've also
built RPM's of pango, libunicode and libfribidi this time.
The pango RPM's aren't all that exciting, since Pango isn't
ready for use in other projects yet, but they should be good
enough to install, and be able to do:
pango-viewer /usr/doc/pango-0.7/HELLO.utf8
And see something like the screenshots.
TODO highlights:
The projects I intend to tackle next are:
- Make a branch of GTK+, start seeing how Pango works out in
real life. (Some parts of this, such as the Text widget and
input in general, are major projects, so I don't expect to
have this work hit the main branch of GTK+ for a while yet.)
- Clean up the shaping portion to correspond to the changes
I made to the itemization portion. This will involve
rethinking the PangoItem structure a bit.
- Start work on the PangoLayout object. (As a first step, it may
be possible to simply move over the appropriate code portions
from pango-viewer.)
Some interesting projects that other people might want to consider:
[ Same as last week. If that bores you, either start doing one of these,
or send me suggestions for easier projects. ]
- Write a libart based font-system and renderer to go along with
the X based one. It would be good to have an idea about how
well the interfaces work with something other than X before
we get too far along.
- Write an Arabic shaping module. A simple one shouldn't be too bad.
With the Tamil and Korean modules, we are already doing more
sophisticated stuff than are necessary for shaping Arabic characters
for X, and the basic module already does simple bidirectional
reordering for glyphs.
(caveat: the module interfaces are not currently very documented,
so this would involve lots of reading code and exploration)
- Write a shaping engine for whatever language you are interested in.
Misc stuff:
There was some discussion on gtk-i18n-list this week about input
methods. A number of people were interested in doing input methods
that didn't go through XIM. It may be interesting to do support this
using shared modules for input methods. Although it isn't strictly
speaking part of Pango, work needs to start soon on figuring out
how the input-method part of the equation works.
Havoc has been working furiously away on his TkText port. I have
a pretty clear picture now of how coverting this widget to Pango
would work. We estimated that if doing layout Pango is 1/20th the
speed of the current straight gdk/Xlib layout that it does, we'll
be OK speedwise for a text widget. I'm sure we can do quite a bit
better than that.
It's not new news, but I ran across the Arphic TrueType fonts for
Chinese this week:
http://lwn.net/1999/1007/a/arphic.html
They don't render all that well with the TrueType renderer, but still,
its nice to have some free scaleable fonts for the Asian languages
(there are also Korean fonts available, but the field of free scaleable
Japanese fonts is thin.) At some point we'll want to have a
"finding fonts for Pango" page. There are quite a few fonts available,
but not much in the way of an up-to-date, multi-language catalog
of the available fonts in various encodings.
One thing that these fonts do make clear is that you have to be
pretty careful about downloading the complete metrics for a scaleable
font. They can take several seconds to compute for a Big5 font, even
on a fast machine. There really needs to be some work done at the X
server level to allow getting a list of available characters in a font
without the metrics, and to allow downloading metrics incrementally.
Owen Taylor
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]