• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

contrib/H01-Apr-2020-11,3165,696

debian-src/H07-May-2022-742539

doc/H03-May-2022-6,2694,872

gr2fonttest/H03-May-2022-1,067876

include/graphite2/H01-Apr-2020-1,018288

python/H01-Apr-2020-594469

src/H03-May-2022-17,46412,589

tests/H03-May-2022-33,31232,135

COPYINGH A D01-Apr-20201.2 KiB2721

ChangeLogH A D01-Apr-20208.9 KiB239210

Graphite.cmakeH A D01-Apr-20207.5 KiB116104

LICENSEH A D01-Apr-202025.9 KiB511422

README.mdH A D01-Apr-20202.5 KiB3927

graphite2.pc.inH A D01-Apr-2020147 85

setup.pyH A D01-Apr-20201.4 KiB4136

README.md

1# Graphite engine
2
3## Project CI status
4| OS      | Intel 64 bit | Intel 32 bit | Arm 32 bit |
5|---------|:------------:|:------------:|:----------:|
6| Linux   | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt124/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt124&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt123/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt123&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:Graphite_Linux32bitArm/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=Graphite_Linux32bitArm&guest=1) |
7| Windows | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:Graphite_Windows64bit/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=Graphite_Windows64bit&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt91/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt91&guest=1)| |
8
9## What is Graphite?
10
11Graphite is a system that can be used to create “smart fonts” capable of displaying writing systems with various complex behaviors. A smart font contains not only letter shapes but also additional instructions indicating how to combine and position the letters in complex ways.
12
13Graphite was primarily developed to provide the flexibility needed for minority languages which often need to be written according to slightly different rules than well-known languages that use the same script.
14
15Examples of complex script behaviors Graphite can handle include:
16
17* contextual shaping
18* ligatures
19* reordering
20* split glyphs
21* bidirectionality
22* stacking diacritics
23* complex positioning
24* shape aware kerning
25* automatic diacritic collision avoidance
26
27See [examples of scripts with complex rendering](http://scripts.sil.org/CmplxRndExamples).
28
29## Graphite system overview
30The Graphite system consists of:
31
32* A rule-based programming language [Graphite Description Language](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_devFont#gdl) (GDL) that can be used to describe the behavior of a writing system
33* A compiler for that language
34* A rendering engine that can serve as the layout component of a text-processing application
35
36Graphite renders TrueType fonts that have been extended by means of compiling a GDL program.
37
38Further technical information is available on the [Graphite technical overview](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_techAbout) page.
39