ATSUI Programming Guide. Apple Type Services for Unicode Imaging (ATSUI) is the technology behind all text drawing in Mac OS X. This document gives an overview of ATSUI, provides an introduction to the concepts and terms you need to understand ATSUI, discusses the core data types you use to control text layout and styles, and shows you how to use ATSUI in your application. You might also find parts of this document useful if you are using an API (such as MLTE) that calls into ATSUI, as this document discusses typographical concepts and terms that are relevant to the APIs that call ATSUI. Mac OS X is an international operating system. It fully supports Unicode and comes with high-quality fonts capable of displaying many languages, including Japanese and Chinese.
Mac OS X supports input of non-phonetic characters used by Chinese, Japanese, and Korean through the use of input methods. TextEdit is another application among the many Mac OS X applications that use ATSUI to lay out and render Unicode text. Core Text Programming Guide. Core Text is an advanced, low-level technology for laying out text and handling fonts. The Core Text API, introduced in Mac OS X v10.5 and iOS 3.2, is accessible from all OS X and iOS environments. At a Glance Core Text is for apps that need a low-level text-handling technology correlating with the Core Graphics framework (Quartz).
If you work directly with Quartz and you need to draw some text, use Core Text. If, for example, you have your own page layout engine—you have some text and you know where it needs to go in your view—you can use Core Text to generate the glyphs and position them relative to each other with all the features of fine typesetting, such as kerning, ligatures, line-breaking, hyphenation, and justification. Core Text Lays Out Text Core Text generates glyphs (from character codes and font data) and positions them relative to each other in glyph runs. You Can Manage Fonts With Core Text Prerequisites See Also. Introducing DirectWrite.
People communicate with text all the time in their daily lives. It is the primary way for people to consume an increasing volume of information. In the past, it used to be through printed content, primarily documents, newspapers, books, and so on. Increasingly, it is online content on their Windows PC. A typical Windows user spends a lot of time reading from their computer screen. They might be surfing the Web, scanning e-mail, composing a report, filling in a spreadsheet, or writing software, but what they're really doing is reading. Even though text and fonts permeate nearly every part of the user experience in Windows, for most users, reading on the screen is not as enjoyable as reading printed output. For Windows application developers, writing text-handling code is a challenge because of the increased requirements for better readability, sophisticated formatting and layout control, and support for the multiple languages the application must display.
Improving the Text Experience. State of Text Rendering. By Behdad Esfahbod <behdad behdad com> Last major update: January 18, 2010 Last minor update: December 18, 2012 Disclaimer At the time of writing the initial version of this paper, the author was working for Red Hat's Desktop team and has been involved with GNOME and Fedora for a long time. He has been a developer and/or maintainer of many modules discussed in this paper at various times, including fribidi, fontconfig, harfbuzz, pango, cairo, and gnome-terminal. Introduction Text is the primary means of communication in computers, and is bound to be so for the decades to come. With the widespread adoption of Unicode as the canonical character set for representing text a whole new domain has been opened up in a desktop system software design.
Gone are the days that one would need to input, render, print, search, spell-check, ... one language at a time. Internationalization and Unicode text processing are about more than just rendering text on the screen. Status Quo FreeType Fontconfig Pango. Graphite. You are here: Rendering > Technologies > Graphite Short URL: Note The Graphite web site has been moved. Please click here for the new site. Contents Overview Download Contact Information Links FAQ Documentation Coming Attractions Other Resources TechKnowLogia article (2001-11-1) Overview Graphite is a project under development within SIL’s Non-Roman Script Initiative and Language Software Development groups to provide rendering capabilities for complex non-Roman writing systems. See “What Is Graphite?” Graphite is intended to serve as the principal non-Roman renderer for the FieldWorks package, the new generation of linguistic and translation tools under development within SIL. Download A tarball of the Graphite source code is available from the SILGraphite project on SourceForge.
Contact Information Send email to: graphite_nrsi at sil.org You are invited to subscribe to any of the Graphite-related mailing lists: Links Documentation Coming Attractions. HarfBuzz. HarfBuzz is an OpenType text shaping engine. There are two HarfBuzz code trees in existence today: The current HarfBuzz tree, also known as harfbuzz-ng, is under active development and is what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome Linux, LibreOffice, XeTeX, and Android among other places. The canonical source tree is available here. Also available on github. Download For tarball releases of the new HarfBuzz codebase, look here. The canonical source tree is available here. The API is not expected to change incompatibly, but we cannot guarantee that until HarfBuzz 1.0.0 is released. If you are not sure whether Pango or HarfBuzz is right for you, read this.
Building On Linux, install the development packages for FreeType, Cairo, and GLib. Sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev whereas on Fedora, RHEL, CentOS, and other Red Hat based systems you would do: sudo yum install gcc gcc-c++ freetype-devel glib2-devel cairo-devel Development. ICU - International Components for Unicode. m17n.