I'm going to rebuild this CMS website. Some of the contents and project informations will be updated accordingly in near future.
Chapter 4
Update : UniMM is closely aligning with new myanmar unicode character allocation pipeline. Current Unicode 5.0 and UTN11 against to new proposed pipeline is differentiated by strike through line according to its category.
Chapter 4 | Implementing Opentype for UTN11
Since uniscribe officially do not support Burmese, the synchronization between opentype and uniscribe for Burmese(Mymr dflt) is unpredictable. Simple algorithm on renderer might need a lot of tasks on opentype implementation. It's like floating; for example, though i use liga, it's somehow rlig or ccmp or language form. Normally, uniscribe trigger the feature which depends on the script. Theorically, this one should be that one, but who can say it's working for the time right now. Afterall, these are for proposing and developing purpose.
Case#1
Given : uni1005 uni102C | uni1001 uni102C
To Proof : uni102C has two forms, depand on pair character(s), it will change
OTL : Single Substitution | Contextual Alternates | GSUB {nested}
Case#2
Given : uni100A uni102F | uni1001 uni102F
To Proof : uni102F has two forms, depand on pair character(s), it will change
OTL : Single Substitution | Contextual Alternates | GSUB {nested}
Case#3
{something related to reorder, not achieve yet, see below}
Case#4
Given : Encode => uni1039 [uni1000..uni1019, uni101C, uni101E, uni1020, uni1021]
To Proof : Consonants have to stack while calling with backtrack uni1039
OTL : Ligature Substitution | GSUB {liga}
Given : Four Medials Y,R,W,H Encode => uni1039 [uni101A, uni101B, uni101D, uni101F]
To Proof : New character(nonunicode), ("Ya Pint", "Ya Yint", "Ha Htoe", "Wa Swae" has to form while calling with uni1039
OTL : Ligature Substitution | GSUB {liga}
Given : Medials R | g{Consonant}
To Proof : Medials R has different formation depends on its pair consonant.
OTL : Single Substitution | Contextual Alternates | GSUB {nested}

Other Below and Above Mark alike Features
(Some of the follwing propose to be use with language and anchor form. If GSUB, there will be a lot of implementation to achieve the task.)
Given : Medials H | uni102F
To Proof : The joint form has to be in proper width. Calling seperate non-unicode character.
OTL : Single Substitution | Contextual Alternates | GSUB {nested}
(This one is nice, so keep it.)
Given : uni102D, uni102E, uni1032, uni1036, uni102F, uni1030
OTL : horizontal kerning.
Given : uni1037 has to be proper pairing to all its next characters.
OTL : Proposed to be Anchor Class. {Mark, Mk-Mk, blwm}
(or)
OTL : Single Substitution | Contextual Alternates | GSUB {nested}
(require two nonunicode additional glyphs)
Case#5
{Kinzi and Visiable Virama are still under operation.} Regarding to upcoming proposal (Unicode 6.0 or later), Visiable Virama may handle with unique code point.
Classes and Functions
In Library book, there are Classes and Functions. Classes are group of Characters which has same properties. This is very similar to GDL(Graphite Description Language), such as declaring cCons, cConsNar, cConsWide, etc... Sometime people would use by Glyph Coverage or even Glyph to Glyph. With fontfoge, the Opentype of UniMM created by Classes method of GSUB(glyph substitution), GPOS(glyph position). List of list glyph are going to represent as numeric number 1, 2, 3,.. The syllable and encoding define by
1[2]3=>tall
BackTracking [Match] LookAhead => Functions
Wherethere: tall represent the Function. Coverage method is same as Glyph Group in VoltOpentypeTool. Coverage method is easier to implement but more repeated works and has a lot of individual subtable.
Footnote:
^ Data might be update in future.
** I moved "Reorder in Myanmar Opentype" #reor article to UniMM blogspot blog entry. Please divert to this link.


