Glyph Processing
By Sachin Karnik - Microsoft Corporation
Some writing systems in the world require processing of both characters and glyphs beyond logical order input. Application and font support for these complex scripts is a good place to start - Windows glyph processing.
The demands of these scripts require all the features of character string processing and glyph substitution and positioning that are available through OpenType, Uniscribe and OTLS. It is likely, however, that many application developers will first encounter system components like Uniscribe and libraries like OTLS during internationalization & development involving complex scripts.
Read more on "Glyph substitution and positioning"
The three elements of Windows glyph processing are:
OpenType
All the information controlling the substitution and relative positioning of glyphs during glyph processing is contained within the OpenType font itself. This information is defined in OpenType Layout (OTL) features that are, in turn, associated with specific scripts and language systems. Placing control of glyph substitution and positioning directly in the font puts a great deal of responsibility for the success of complicated glyph processing on the shoulders of type designers and font developers, but since the work involves making decisions about the appearance of text, this is the correct place for the responsibility to land.
OpenType font developers enjoy a great deal of freedom in defining what features are suitable to a particular typeface design, but they remain dependent on application support to make those features accessible to users. Complex scripts requiring the presence of specific OTL features for correct shaping, it is very important that font developers ensure that the feature lookups they define meet the expectations of other elements of Windows glyph processing technology, particularly Uniscribe.
OTLS
The OpenType font format is the central element of the Windows glyph processing model. The OpenType Layout Services library (OTLS) has great benefits to application developers who need to support glyph processing but want to be insulated from details of the font file format. OTLS allows client applications to concentrate on those aspects of text processingcharacter handling and presentation of formatting features to usersby using OTLS to handle the unfamiliar details of lookup tables and glyph IDs.
Uniscribe
Uniscribe the Windows Unicode Script Processor, is a collection of APIs and shaping engines that enable text layout clients to format complex scripts. The Uniscribe DLL (USP10.DLL) currently ships with Windows 2000 and with Internet Explorer 5.0+. After the release of Windows XP in 2001, Uniscribe was made available via the Microsoft Developer Network (MSDN), which will allow for more frequent updates supporting new scripts and languages. Although Uniscribe is of greatest benefit under Windows 2000, where it can take advantage of input method support for Arabic and Indic languages, it can also be used in Windows NT4, 98 and 95 to view and print Unicode text for complex scripts. The Uniscribe APIs include a core set of ScriptString functions similar to the familiar TextOut for plain text clients, with advanced caret placement, and functions that prepare complex scripts for shaping in the Uniscribe engines.