| Microsoft Typography | Developer information | Specifications | OpenType font development | |||
| Syriac OpenType Specification | Terms | Shaping | Features | Other | Appendix | |||
|
The Uniscribe Syriac shaping engine processes text in stages. The stages are:
The descriptions which follow will help font developers understand the rationale for the Syriacfeature encoding model, and help application developers better understand how layout clients can divide responsibilities with operating system functions.
The unit that the shaping engine receives for the purpose of shaping is a string of Unicode characters, in a sequence. The contextual analysis engine determines the correct contextual form the character should take based on the character before and after it. The contextual shape maps to an OTL feature for that form (isol, init, medi, med2, fina, fin2, fin3). Additionally, during the analysis process, the engine also verifies valid diacritic combinations. For additional information see Other Encoding Issues; 'Handling invalid combining marks' in this document.
The first step Uniscribe takes in shaping the character string is to map all characters to their nominal form glyphs (e.g. the glyph for U+0627). Then, Uniscribe applies contextual shape features to the glyph string. Next, Uniscribe calls OTLS to apply the features. All OTL processing is divided into a set of predefined features (described and illustrated in the Feature section of this document). Each feature is applied, one by one, to the appropriate glyphs in the syllable and OTLS processes them. Uniscribe makes as many calls to the OTL Services as there are features. This ensures that the features are executed in the desired order. The steps of the shaping process are outlined below. Shaping features:
Uniscribe next applies features concerned with positioning, calling functions of OTLS to position glyphs. Positioning features:
|
|||
| Syriac OpenType Specification | Terms | Shaping | Features | Other | Appendix | |||
| Microsoft Typography | Developer information | Specifications | OpenType font development | |||