Uniscribe


Uniscribe is the Microsoft Windows set of services for rendering Unicode-encoded text, supporting complex text layout. It is implemented in the dynamic link library. Uniscribe was released with Windows 98 SE, Windows 2000 and Internet Explorer 5.0. In addition, the Windows CE platform has supported Uniscribe since version 5.0.
"USP" is an initialism for Unicode Scripts Processor. Its features include:
  • arranging input text from the input sequence to visual sequence;
  • substituting glyphs according to context ;
  • ordering displayed text based on text flow direction, such as left-to-right or right-to left, horizontal or vertical.
Although Uniscribe continues to be maintained as of 2021, its intended replacement DirectWrite, which has more features, was introduced with Windows 7.

USP10.DLL Versions

Below are listed some common versions of usp10.dll, as well as the methods by which they are distributed.
Features are added according only the "major.minor" part of the version number, the third part in the full version number is used for system target identification numbers for which the DLL was ported by Microsoft, and the last part is the build number on each target system version. Some hotfixes provide upgrades only for specific applications, and are not suitable for use in the Windows system directory :
File sizes may vary depending on specific localizations of the DLL ; those given here are for the US-English localization.
Version numberFile Size File DateSoftware Bundled byNew feature of this version
10.0.14393.079,360 2016-08-02Windows 10 Anniversary Update?
1.626.7601.23259627,712 2015-11-03??
1.626.7601.19054627,712 2015-11-03??
10.0.10240.16834626,688 2015-07-10Windows 10Universal Shaping Engine support for Unicode 7.0 complex scripts
1.626.7601.18454 626,688
801,280
2014-04-25KB2957509 – Windows 7, Windows [Server 2008 R2], Windows Vista, Windows Server 2008, Windows Server 2003Security update
1.626.7601.22666 626,688
801,792
2014-04-25KB2957509 – Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows Server 2003Security update
6.3.9431.076,2882013-06-16Windows 8.1 ?
6.2.9200.1638475,7762012-07-26Windows 8?
1.626.7601.22171626,688 2012-11-22??
1.626.7601.18009626,6882012-11-22KB2786400 An update is available that changes the default settings of the shaping behavior for Arabic text rendering in Windows 7 and Windows Server 2008 R2.
1.626.7601.17514799,7442010-11-20Windows 7 SP1 x64 ?
1.626.7601.17514625,6642010-11-20Windows 7 SP1 x86 ?
1.626.7601.17105625,6642010-09-30Windows 7 SP1 Restore support for unassigned code points
1.626.7600.20796640,0002010-09-21PowerPoint Viewer 2010 KB2460050 ?
1.626.7600.20602637,9522010-01-07Microsoft Office 2010 Support PR-37: Clarification of the Use of Zero Width Joiner in Indic Scripts; This version supports OpenType on Windows XP.
1.626.7600.16385643,0722009-08-04Microsoft Office 2010 ?
1.626.7600.16385626,6882009-07-14Windows 7 ?
1.626.7100.0626,6882009-04-22Windows 7 RC?
1.626.6002.22402502,7842010-07-11Microsoft Office 2007 Security Update KB2288621 MS10-063: Description of the security update for the 2007 Office suites: September 14, 2010
1.626.6002.18244621,5682010-04-16Windows Server 2008 SP2, Windows Vista SP2 Security Update KB981322 MS10-063: Description of the security update for Windows Unicode Scripts Processor: September 14, 2010
1.626.6002.18005621,5682009-04-11Windows Server 2008 SP2, Windows Vista SP2?
1.626.6001.18000501,7602008-01-19Windows Server 2008, Windows Vista SP1, VOLTSupplementalFiles, MS VOLT 1.3, SIL FieldWorks, Keyman Desktop 7.1Supports newer OpenType table features; improved support for ligatures and contextual shapes in Indic scripts with simpler fonts
1.626.6001.16510502,7842007-04-18Windows Server "Longhorn" ?
1.626.6000.20581502,7842007-04-19 02:15:55 UTCWindows Vista Hotfix FIX: incorrect rendering of fully decomposed characters in NFD form encoded in sequences with more than 2 characters
1.626.6000.16386502,7842006-11-02 09:44:03 UTCWindows Vista Ultimate DirectX 10? WDDM?
1.626.5756.0502,7842006-10-13Microsoft Office 2007 Ultimate Supports Oriya and Kannada scripts
1.615.5384.4495,6162006-06-17Windows Vista DirectX 9?
1.614.5315.0464,8962006-03-13Microsoft Office 2007 OpenType typographic features?
1.613.5291.0492,5442006-01-04Windows Vista Microsoft VOLT 1.2
1.609.5219.0480,2562005-08-17Microsoft Office 12 Professional OpenType typographic features?
1.606.5065.1??Third-party softwareSupports Mongolian script
1.606.5078.0??Hotfix for SIL fontsFIX : Combining mark sequences in Latin script may be incorrectly rendered
1.601.5022.8438,2722005-01-07Microsoft Sinhala Enabling Pack for XP 0.42Supports Sinhala script
1.473.4067.15424,9602004-10-22Third-party softwareMicrosoft Visual OpenType Layout Tool 1.1.225 update
1.473.4067.0424,9602004-10-22Third-party softwareSupports Malayalam script; VOLTSupplementalFiles ; rendering improvement up to 3 diacritics with CGJ
1.471.4063.0424,9602004-02-04Microsoft Office 2003, SIL FieldWorks ?
1.471.4030.0413,1842004-04-15Microsoft Office 2003, Google Earth?
1.468.4015.0??Paratext 6Supports Tibetan script.
1.468.4011.0???Supports Tibetan script.
1.460.3707.0??MS VOLT 1.1.206Supports Khmer script
1.453.3665.0??VOLTSupplementalFiles ?
1.422.3790.1830364,0322005-03-30Windows Server 2003 FIX?
1.421.3790.0353,2802003-03-25Windows Server 2003Support for DirectX, GDI+ and newer display driver model
1.420.2600.5969406,0162010-04-16Windows XP Security Update KB981322 MS10-063: Description of the security update for Windows Unicode Scripts Processor: September 14, 2010
1.420.2600.5512406,0162008-04-14Windows XP Build 5512 FIX?
1.420.2600.3163406,0162007-06-26Windows XP Hotfix KB939450 FIX: The GetCharacterPlacement function unexpectedly returns zero
1.420.2600.2791406,0162005-11-05Windows XP Hotfix KB910466 FIX: You may receive a "MEM_BAD_POINTER" error message on a computer that is running Windows XP with Service Pack 2
1.420.2600.2180406,5282004-08-12Windows XP Build 2180 Supports Bengali and Malayalam scripts; supports complex Latin ; FIX: ligation of tone contours
1.409.2600.1106339,4562002-08-29Windows XP Build 1106 ?
1.408.2600.1020339,4562002-04-17Internet Explorer 6.0.2800.1106 ?
1.407.2600.0339,4562001-08-17Windows XPSupports Thaana, Gujarati, Kannada, Gurmukhi, Syriac and Telugu scripts
1.405.2416.1325,1202001-01-15Microsoft Office XP, Microsoft Word 2000 Fully supports Hebrew, Devanagari and Tamil scripts
1.400.2411.1323,0722000-12-13Internet Explorer 6 ?
1.325.2195.6692315,6642003-06-19Windows 2000 SP4 ?
1.325.2195.??2001-09-25Microsoft Windows Installer 2.0 Redistributable for Windows 95/98/Me Needed for Microsoft viewers of Powerpoint 2003 presentations on Windows 95 and 98
1.325.2195.1340315,6642000-07-21Windows 2000 SP1Fully supports Arabic script
1.325.2180.1323,5842000-06-08Windows MeImproved API for scripts with bidirectional and complex layouts; minimum support for Arabic and Hebrew scripts
1.325.2180.1315,1522000-04-26Microsoft Global IME for Microsoft Office XPImproved API for scripts with bidirectional and complex layouts; minimum support for Arabic and Hebrew scripts
1.325.2180.1315,1521999-11-30Internet Explorer 5.5 release, SP1 & SP2Improved API for scripts with bidirectional and complex layouts; minimum support for Arabic and Hebrew scripts
1.175.0.1274,4321999-04-05Windows 98 SEFirst stable Uniscribe API; supports simple alphabetic scripts with decomposed diacritics
1.175.0.1264,9761999-01-28Internet Explorer 5.01First stable Uniscribe API; supports simple alphabetic scripts with decomposed diacritics
1.163.1890.1268,2881998-09-22Third-party softwareMultilanguage Text Layout and Complex Scripts snapshot

Universal Shaping Engine

Scripts with complex text layout have contextual and non-linear requirements to render their typography correctly. These requirements include: ligatures, where two consecutive characters are combined into one shape ; reordering, where some characters are written before the letter they follow in pronunciation ; and context-shaping, where some letters have to change shape depending on whether they occur in the beginning, middle, or the end of the word.
Uniscribe uses several script-specific shaping engines for handling typography in supported complex scripts; these are implemented in addition to a generic engine for non-complex scripts. The currently used engines include Indic, Arabic, Hangul, Hebrew, Khmer, Myanmar, and Thai/Lao variants.
The complexity of the Unicode standard and ambiguities in OpenType specification often result in incomplete or erroneous implementations of complex text layout. Script-specific shaping engines work on a case-by-case basis and do not consistently handle common features of OpenType fonts, which makes it difficult for OS programmers and font developers to support new scripts. Implementation errors are very hard or impossible to correct at a later stage without breaking up backward compatibility for existing documents and fonts, often requiring new OpenType layout features and a redesign of existing fonts and typography rendering engines.
In Windows 10, major refactoring work was done for Uniscribe to implement a generalized shaping model, the Universal Shaping Engine. This engine is directly based on glyph properties defined in the Unicode standard, in the hope that any complex script with a suitable font would be supported without the time and effort required to create a dedicated shaping engine.
USE builds on a generalized "universal cluster model" developed for the Indic scripts, which models a superset of human writing systems. The engine classifies each character of a complex script into several categories, base classes and subclasses. For example, a provisional Indic classification includes general, syllabic and positional categories, further divided into base, base vowel, number, final, medial, and modifier consonants, medial consonants, as well as top, bottom, left and right consonants and vowels. Unicode symbol strings are converted into collections of USE classes using well-defined rules, making glyph composition a standard procedure and allowing inter-character interactions not possible with current language features defined in OpenType specifications.
The Universal Shaping Engine was presented at the OpenType Developer Meeting in 2014; a compatible approach was also implemented by the open source HarfBuzz text shaper. As of 2020, the USE in Windows 10 handles a total of 70 complex scripts: Adlam, Ahom, Balinese, Batak, Bhaiksuki, Brahmi, Buginese, Buhid, Chakma, Cham, Chorasmian, Dives Akuru, Duployan, Egyptian Hieroglyphs, Elymaic, Grantha, Gunjala Gondi, Hanifi Rohingya, Hanunoo, Javanese, Kaithi, Kayah Li, Kharoshthi, Khitan Small Script, Khojki, Khudawadi, Lepcha, Limbu, Mahajani, Makasar, Mandaic, Manichaean, Marchen, Masaram Gondi, Medefaidrin, Meitei Mayek, Miao, Modi, Mongolian, Multani, Nandinagari, Newa, N’Ko, Nyiakeng Puachue Hmong, Pahawh Hmong, Phags-pa, Psalter Pahlavi, Rejang, Saurashtra, Sharada, Siddham, Sinhala, Sogdian, Old Sogdian, Soyombo, Sundanese, Syloti Nagri, Tagalog, Tagbanwa, Tai Le, Tai Tham, Tai Viet, Takri, Tibetan, Tifinagh, Tirhuta, Wancho, Yezidi, and Zanabazar Square.

Versions

Although Uniscribe has been available since Windows 2000, new versions of Uniscribe have provided more functions to the system, namely, support for other writing systems. An earlier update of it supports the display of Arabic and Hebrew, then Thai and Vietnamese. Since Windows XP, more South Asian and Assyrian scripts are supported.