All Projects → Tehreer → SheenFigure

Tehreer / SheenFigure

Licence: Apache-2.0 license
An implementation of advanced typographic tables of OpenType specification.

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to SheenFigure

Tehreer-Android
Standalone text engine for Android aimed to be free from platform limitations
Stars: ✭ 61 (+154.17%)
Mutual labels:  unicode, opentype, opentype-features, text-shaping, variable-fonts
opentype-shaping-documents
Documentation of OpenType shaping behavior
Stars: ✭ 121 (+404.17%)
Mutual labels:  unicode, opentype, opentype-features, opentype-fonts
Harfbuzz
HarfBuzz text shaping engine
Stars: ✭ 2,206 (+9091.67%)
Mutual labels:  unicode, opentype, text-shaping, variable-fonts
Tehreer-Cocoa
Standalone text engine for iOS
Stars: ✭ 31 (+29.17%)
Mutual labels:  unicode, opentype, opentype-features, text-shaping
Source Code Pro
Monospaced font family for user interface and coding environments
Stars: ✭ 17,749 (+73854.17%)
Mutual labels:  opentype-fonts, variable-fonts
opentype-feature-bundle
Syntax highlighting and snippets for OpenType feature development in TextMate/Sublime Text
Stars: ✭ 35 (+45.83%)
Mutual labels:  opentype, opentype-features
Source Serif
Typeface for setting text in many sizes, weights, and languages. Designed to complement Source Sans.
Stars: ✭ 1,848 (+7600%)
Mutual labels:  opentype-fonts, variable-fonts
Source Sans
Sans serif font family for user interface environments
Stars: ✭ 3,059 (+12645.83%)
Mutual labels:  opentype-fonts, variable-fonts
Source Han Serif
Source Han Serif | 思源宋体 | 思源宋體 | 思源宋體 香港 | 源ノ明朝 | 본명조
Stars: ✭ 5,920 (+24566.67%)
Mutual labels:  opentype, variable-fonts
Source Han Sans
Source Han Sans | 思源黑体 | 思源黑體 | 思源黑體 香港 | 源ノ角ゴシック | 본고딕
Stars: ✭ 10,181 (+42320.83%)
Mutual labels:  opentype, variable-fonts
text-rendering-tests
Unicode’s test suite for text rendering engines
Stars: ✭ 135 (+462.5%)
Mutual labels:  unicode, opentype
Awesome Typography
✏︎ Curated list about digital typography 🔥
Stars: ✭ 947 (+3845.83%)
Mutual labels:  unicode, opentype
dcc
Direct/Interactive C Compiler
Stars: ✭ 18 (-25%)
Mutual labels:  c89, ansi-c
variable-font-collection-test
Variable Font Collection Test
Stars: ✭ 26 (+8.33%)
Mutual labels:  opentype, opentype-fonts
barectf
Generator of ANSI C tracers which output CTF data streams
Stars: ✭ 50 (+108.33%)
Mutual labels:  ansi-c
icu ext
PostgreSQL extension (in C) to expose functionality from the ICU library
Stars: ✭ 23 (-4.17%)
Mutual labels:  unicode
fntsample
PDF and PostScript font samples generator (migrating from https://sourceforge.net/projects/fntsample/)
Stars: ✭ 20 (-16.67%)
Mutual labels:  unicode
kuu-pyaung
Laravel package to convert files and database from zawgyi to unicode.
Stars: ✭ 13 (-45.83%)
Mutual labels:  unicode
otfed
An OpenType font format encoder & decoder written in OCaml
Stars: ✭ 15 (-37.5%)
Mutual labels:  opentype
open-type-features
Testing the OpenType features of installed fonts in Adobe InDesign
Stars: ✭ 40 (+66.67%)
Mutual labels:  opentype-fonts

SheenFigure

License Build Status Coverage Status

SheenFigure aims to implement the advanced typographic tables of OpenType specification available at https://www.microsoft.com/en-us/Typography/OpenTypeSpecification.aspx along with script specific shaping engines available at https://www.microsoft.com/en-us/Typography/SpecificationsOverview.aspx. Currently, it only supports Arabic script and a subset of GDEF, GSUB and GPOS tables. The support is intended to increase in each newer versions of the library.

Here are some of the advantages of SheenFigure.

  • Object based
  • Designed to be thread safe
  • Lightweight API for interaction
  • Clear differentiation of public and private API
  • Thoroughly tested

Dependency

SheenFigure only depends on SheenBidi in order to support UTF-8, UTF-16 and UTF-32 string encodings. Other than that, it only uses standard C library headers stddef.h, stdint.h, stdlib.h and string.h.

Configuration

The configuration options are available in Headers/SFConfig.h.

  • SF_CONFIG_UNITY builds the library as a single module and lets the compiler make decisions to inline functions.

Compiling

SheenFigure can be compiled with any C compiler. The best way for compiling is to add all the files in an IDE and hit build. The only thing to consider however is that if SF_CONFIG_UNITY is enabled then only Source/SheenFigure.c should be compiled.

Public API

Here is a glimpse of public API in the form of UML class diagram. Public API

Conformance

Following are the tables implemented by SheenFigure.

OpenType Layout Common Table Formats

Table Supported
Script List ✔️
Feature List ✔️
Lookup List ✔️
Coverage ✔️
Class Definition ✔️
Device ✔️
Variation Index ✔️

GDEF (Glyph Definition Table)

Subtable Supported
Glyph Class Definition ✔️
Attachment List
Ligature Caret List
Mark Attachment Class Definition ✔️
Mark Glyph Sets ✔️
Item Variation Store ✔️

GPOS (Glyph Positioning Table)

Subtable Format 1 Format 2 Format 3
Single Adjustment ✔️ ✔️
Pair Adjustment ✔️ ✔️
Cursive Attachment ✔️
Mark To Base Attachment ✔️
Mark To Ligature Attachment ✔️
Mark To Mark Attachment ✔️
Context Positioning ✔️ ✔️ ✔️
Chained Context Positioning ✔️ ✔️ ✔️
Extension Positioning ✔️

GSUB (Glyph Substitution Table)

Subtable Format 1 Format 2 Format 3
Single ✔️ ✔️
Multiple ✔️
Alternate ✔️
Ligature ✔️
Context ✔️ ✔️ ✔️
Chaining Context ✔️ ✔️ ✔️
Extension ✔️
Reverse Chaining Context ✔️
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].