Pango (stylized as Παν語) is a text (i.e. glyph ) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text.
30-518: Full-function rendering of text and cross-platform support is achieved when Pango is used with platform APIs or third-party libraries, such as Uniscribe and FreeType , as text rendering backends . Pango-processed text will appear similar under different operating systems. Pango is a special-purpose library for text and not a general-purpose graphics rendering library such as Cairo , with which Pango can be used. The Cairo documentation recommends Pango be used to "render" text rather than Cairo for all but
60-520: A console. This also helps to make up for lack of titles at the launch of new systems, as users can pull from the previous console's library of games while developers transition to the new hardware. Moreover, studies in the mid-1990s found that even consumers who never play older games after purchasing a new system consider backward compatibility a highly desirable feature, valuing the mere ability to continue to play an existing collection of games even if they choose never to do so. Backward compatibility with
90-478: 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 (USE). This engine is directly based on glyph properties defined in
120-483: A manufacturer decides to stop supporting older hardware. Classic video games are a common example used when discussing the value of supporting older software. The cultural impact of video games is a large part of their continued success, and some believe ignoring backward compatibility would cause these titles to disappear. Backward compatibility also acts as a selling point for new hardware, as an existing player base can more affordably upgrade to subsequent generations of
150-477: A provisional Indic classification includes general, syllabic and positional categories, further divided into base (number, consonant, tone letter, dependent vowel, etc.), base vowel (independent vowel), number (Brahmi joining 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
180-1471: 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 (limited support), Tai Viet, Takri, Tibetan, Tifinagh, Tirhuta, Wancho, Yezidi, and Zanabazar Square. Although Uniscribe has been available since Windows 2000, new versions of Uniscribe have provided more functions to
210-452: A system. Modifying a system in a way that does not allow backward compatibility is sometimes called " breaking " backward compatibility. Such breaking usually incurs various types of costs, such as switching cost . A complementary concept is forward compatibility ; a design that is forward-compatible usually has a roadmap for compatibility with future standards and products. A simple example of both backward and forward compatibility
240-526: Is here . Pango has been integrated into most Linux distributions. The GTK UI toolkit uses Pango for all of its text rendering. The Linux versions of the Mozilla Firefox web browser and Mozilla Thunderbird mail client use Pango for text rendering. Uniscribe Uniscribe is the Microsoft Windows set of services for rendering Unicode -encoded text, supporting complex text layout . It
270-479: Is a general notion of interoperation between software pieces that will not produce any errors when its functionality is invoked via API . The software is considered stable when its API that is used to invoke functions is stable across different versions. In operating systems, upgrades to newer versions are said to be backward compatible if executables and other files from the previous versions will work as usual. In compilers , backward compatibility may refer to
300-477: Is implemented in the dynamic link library USP10.DLL . Uniscribe was released with 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 U nicode S cripts P rocessor. Its features include: Although Uniscribe continues to be maintained as of 2021, its intended replacement DirectWrite , which has more features,
330-527: Is particularly important in computer instruction set architectures , two of the most successful being the IBM 360 / 370 / 390 / Zseries families of mainframes, and the Intel x86 family of microprocessors . IBM announced the first 360 models in 1964 and has continued to update the series ever since, with migration over the decades from 32-bit register/24-bit addresses to 64-bit registers and addresses. Intel announced
SECTION 10
#1732837381877360-466: Is the introduction of FM radio in stereo . FM radio was initially mono , with only one audio channel represented by one signal . With the introduction of two-channel stereo FM radio, many listeners had only mono FM receivers. Forward compatibility for mono receivers with stereo signals was achieved by sending the sum of both left and right audio channels in one signal and the difference in another signal. That allows mono FM receivers to receive and decode
390-608: The 'locl' feature for the latn/ROM (Romanian) script, a quick demonstration (on Linux) is: For an explanation of the substitutions rules for Romanian, see this discussion . Setting the locale via the POSIX environment variable, e.g. LANG=ro_RO.UTF-8 will also cause Pango to use 'locl' font feature. Finally, you can change the language on the fly in the same text using Pango markup , e.g.: Since 1.37.1, Pango added more attributes to provide complete support for processing OpenType feature. The official showcase of Pango's script-aware features
420-826: The Office installation directory), and are not suitable for use in the Windows system directory (whose version of the DLL should never be updated and is often protected by the system): File sizes may vary depending on specific localizations of the DLL (depending on the target system or application for which it was compiled); those given here are for the US-English localization. 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 (Latin, Devanagari); reordering, where some characters are written before
450-471: 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
480-485: 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,
510-471: The ability of a compiler for a newer version of the language to accept source code of programs or data that worked under the previous version. A data format is said to be backward compatible when a newer version of the program can open it without errors just like its predecessor. There are several incentives for a company to implement backward compatibility. Backward compatibility can be used to preserve older software that would have otherwise been lost when
540-509: The first Intel 8086 / 8088 processors in 1978, again with migrations over the decades from 16-bit to 64-bit. (The 8086/8088, in turn, were designed with easy machine-translatability of programs written for its predecessor in mind, although they were not instruction-set compatible with the 8-bit Intel 8080 processor of 1974. The Zilog Z80 , however, was fully backward compatible with the Intel 8080.) Fully backward compatible processors can process
570-648: The letter they follow in pronunciation (Bengali, Sinhala, and other Indic scripts); 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 (Arabic, Mongolian). 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 (such as Latin or Cyrillic). The currently used engines include Indic (Bengali, Devanagari, Gujarati, Gurmukhi, Kannada, etc.), Arabic, Hangul, Hebrew, Khmer, Myanmar, and Thai/Lao variants. The complexity of
600-639: The main CPU for PS1 mode or upclocking itself to offload I/O in PS2 mode. This coprocessor was replaced with a PowerPC -based processor in later systems to serve the same functions, emulating the PS1 CPU core. Such an approach can backfire, though, as was the case of the Super Nintendo Entertainment System (Super NES). It opted for the more peculiar 65C816 CPU over the more popular 16-bit microprocessors on
630-431: The new system. Because of this, several console manufacturers phased out backward compatibility towards the end of the console generation in order to reduce cost and briefly reinvigorate sales before the arrival of newer hardware. It is possible to bypass some of these hardware costs. For instance, earlier PlayStation 2 (PS2) systems used the core of the original PlayStation (PS1) CPU as a dual-purpose processor, either as
SECTION 20
#1732837381877660-487: The newest generation of consoles such as PlayStation 5 and Xbox Series X/S also support this feature. A large part of the success and implementation of this feature is that the hardware within newer generation consoles is both powerful and similar enough to legacy systems that older titles can be broken down and re-configured to run on the Xbox One. This program has proven incredibly popular with Xbox players and goes against
690-491: The original PlayStation (PS) software discs and peripherals is considered to have been a key selling point for the PlayStation 2 (PS2) during its early months on the market. Despite not being included at launch, Microsoft slowly incorporated backward compatibility for select titles on the Xbox One several years into its product life cycle. Players have racked up over a billion hours with backward-compatible games on Xbox, and
720-423: The product that may lead to longer time to market , technological hindrances, and slowing innovation; and increased expectations from users in terms of compatibility. It also introduces the risk that developers will favor developing games that are compatible with both the old and new systems, since this gives them a larger base of potential buyers, resulting in a dearth of software which uses the advanced features of
750-424: The recent trend of studio-made remasters of classic titles, creating what some believe to be an important shift in console makers' strategies. The monetary costs of supporting old software is considered a large drawback to the usage of backward compatibility. The associated costs of backward compatibility are a larger bill of materials if hardware is required to support the legacy systems; increased complexity of
780-490: The same binary executable software instructions as their predecessors, allowing the use of a newer processor without having to acquire new applications or operating systems . Similarly, the success of the Wi-Fi digital communication standard is attributed to its broad forward and backward compatibility; it became more popular than other standards that were not backward compatible. In software development, backward compatibility
810-513: The simplest text "rendering". The name pango comes from Greek pan ( παν , ' all ' ) and Japanese go ( 語 , ' language ' ). In January 2000, the merger of the GScript and GnomeText projects was named Pango. Pango version 1.0.0 was released 11 March 2002. Pango 1.17 and newer support the 'locl' feature tag that allows localized glyphs to be used for the same Unicode code point. Assuming you have Verdana version 5.01 installed, which supports
840-444: The sum signal while ignoring the difference signal, which is necessary only for separating the audio channels. Stereo FM receivers can receive a mono signal and decode it without the need for a second signal, and they can separate a sum signal to left and right channels if both sum and difference signals are received. Without the requirement for backward compatibility, a simpler method could have been chosen. Full backward compatibility
870-547: 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. Backward compatibility In telecommunications and computing , backward compatibility (or backwards compatibility ) is a property of an operating system , software, real-world product, or technology that allows for interoperability with an older legacy system , or with input designed for such
900-558: Was introduced with Windows 7 . 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 (which may change within regular system/software updates). Some hotfixes provide upgrades only for specific applications (notably in
#876123