From 9bbaaa1ce2e55fbcf4a04f860ea609d8386bdf53 Mon Sep 17 00:00:00 2001 From: Muhammad Tayyab Akram Date: Sun, 13 Nov 2016 11:43:14 +0500 Subject: [PATCH] Updated README.md file... --- README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cfeec60..c8ce870 100644 --- a/README.md +++ b/README.md @@ -8,19 +8,68 @@ SheenFigure aims to implement the advanced typographic tables of OpenType specif 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. +* 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```. +SheenFigure only depends on [SheenBidi](https://github.com/mta452/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/SFConifg.h`. +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. + +## 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 | ❌ | | |