The goal is to provide building blocks for handling Unicode text rendering from the ground-up on OSX, iOS and Android (Windows support should be trivial to add, contributions are welcome...)
Topics of interest
- Glyph shaping
- Font fallback
- Layout caching
- Script itemization
- BIDI reordering
- Line breaking
- OpenGL rendering
Freetype should be used behind the scenes. In addition, existing quality open-source fonts should be evaluated, starting with those bundled with the Android platform.
Motivations and scope
The goal is to provide support for internationalization in interactive applications and games created with Cinder. Currently, there is no appropriate cross-platform solution due the lack of public C++ API for text-rendering on Android.
Take in count, however, that not all the features available in OS solutions like CoreText (or even in modern browsers) are going to be implemented.
Progress
So far, Harfbuzz and ICU have been tested successfully via the following projects:
- CinderHarfbuzz
- ShapingTester
- ShapingMetrics
- FontComparator
- LanguageFeatures
- ShapingFallback
- SimpleBIDI
- SimpleVirtualFont
- SimpleLayoutCaching
- SimpleRendering
- ScriptDetector
- BIDI
- LayoutCaching
- VirtualFont
- Rendering
More work remains, notably with line-breaking and OpenGL rendering...
The instructions are for OSX.
- Download Cinder 0.8.5 Vanilla
- Unzip and rename the "cinder_0.8.5_mac" folder to "Cinder"
- Place a copy of the Freetype repository in
Cinder/blocks
- Place a copy of this repository in
Cinder/samples
The folder hierarchy should look like:
Cinder
|--blocks
|..|--Freetype
|--samples
|..|--Unicode
Running on OSX and iOS
- Enter the relevant folder in
Projects
- Open the relevant XCode project (under
osx
orios
)
Tested with OSX 10.7.5 and XCode 4.6.2.
Tested with OSX 10.5.8 and XCode 5.0.2.
Running on Android
Prerequisites:
Then:
- Enter the relevant folder in
Projects
- Enter the
android
folder - Type
. ./setup-android
in Terminal and follow the instructions