Rendering and laying out Unicode text

KDE Contributor and Developer Conference

2004 KDE Community World Summit

Speaker: Lars Knoll of Trolltech

Language: English

Talk is scheduled for: Sunday, 22nd of August 2004, 13:00 - 14:00

Check the Schedule for an overview of all talks during this conference.

Unicode has been used by KDE and Qt for several years now to encode all our text data.  Due to the variety of languages and writing systems supported by Unicode, rendering text in a form legible to the end user is a complex problem.  Several processing stages are required to achieve this goal, some of them requiring a lot of knowledge about the different writing systems.

Most assumptions that hold when layouting Latin text do not hold for other writing systems and make writing a Unicode capable text layouting engine a rather difficult task.  Some of the challenges one encounters when trying to implement such a system include bidirectional layout (in middle eastern languages), contextual substitutions for cursive scripts (as Arabic and Syriac), complex shaping and reordering within syllables of a word (Indic languages), complex justification rules (Arabic) and line breaking rules requiring dictionary lookups (Thai).

Application developers should not have to know about most of these issues when implementing their own text widgets. This can be achieved by hiding as much of the complexity as possible behind a rather easy to use API.

The talk will give an overview over the challenges to overcome when implementing support for the different writing systems as well as the resulting text layouting API offered by Qt.

About Lars Knoll
Lars Knoll started his career in Software development redesigning KDE's HTML engine for KDE 2. In the summer of 2000 he joined Trolltech and is now one of the lead developers inside the Qt development team. Before moving over to Computer Science did his PhD in physics at the University of Heidelberg. He lives in Oslo together with his fiancee.

Suggestions and inquiries direct please to KDE aKademy Team.

[ Edit ]