summaryrefslogtreecommitdiff
path: root/src/hb-ot-shape-complex-indic-private.hh
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2012-05-09 15:56:35 +0200
committerBehdad Esfahbod <behdad@behdad.org>2012-05-09 15:59:47 +0200
commitd4480ace7fdbe48aeaf77278c032b8b2ef2ebe8e (patch)
treee4d972bf449895a576598cf6e033cde5f0908075 /src/hb-ot-shape-complex-indic-private.hh
parent33c92e769563ec2a6c1249b57d8cac742eea6f88 (diff)
[Indic] Improve matra vs consonant ordering
Another 1.5% down.
Diffstat (limited to 'src/hb-ot-shape-complex-indic-private.hh')
-rw-r--r--src/hb-ot-shape-complex-indic-private.hh32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/hb-ot-shape-complex-indic-private.hh b/src/hb-ot-shape-complex-indic-private.hh
index e60b00aa..8ba37d36 100644
--- a/src/hb-ot-shape-complex-indic-private.hh
+++ b/src/hb-ot-shape-complex-indic-private.hh
@@ -62,11 +62,19 @@ enum indic_category_t {
/* Visual positions in a syllable from left to right. */
enum indic_position_t {
+ POS_LEFT_MATRA = 0,
+
POS_PRE = 1,
POS_BASE = 2,
POS_ABOVE = 3,
POS_BELOW = 4,
- POS_POST = 5
+ POS_POST = 5,
+
+ POS_MATRAS = 6,
+
+ POS_REPH = 7,
+
+ POS_SMVD = 8
};
/* Categories used in IndicSyllabicCategory.txt from UCD */
@@ -100,10 +108,10 @@ enum indic_syllabic_category_t {
enum indic_matra_category_t {
INDIC_MATRA_CATEGORY_NOT_APPLICABLE = POS_BASE,
- INDIC_MATRA_CATEGORY_LEFT = POS_PRE - 1, /* Move *before* existing "pre" chars */
- INDIC_MATRA_CATEGORY_TOP = POS_ABOVE,
- INDIC_MATRA_CATEGORY_BOTTOM = POS_BELOW,
- INDIC_MATRA_CATEGORY_RIGHT = POS_POST,
+ INDIC_MATRA_CATEGORY_LEFT = POS_LEFT_MATRA,
+ INDIC_MATRA_CATEGORY_TOP = POS_MATRAS,
+ INDIC_MATRA_CATEGORY_BOTTOM = POS_MATRAS,
+ INDIC_MATRA_CATEGORY_RIGHT = POS_MATRAS,
/* We don't really care much about these since we decompose them
* in the generic pre-shaping layer. They will only be used if
@@ -114,13 +122,13 @@ enum indic_matra_category_t {
* TODO: There are some split matras without Unicode decompositions.
* We have to figure out what to do with them.
*/
- INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT = 8 + INDIC_MATRA_CATEGORY_BOTTOM,
- INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT = 8 + INDIC_MATRA_CATEGORY_LEFT,
- INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM = 8 + INDIC_MATRA_CATEGORY_BOTTOM,
- INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = 8 + INDIC_MATRA_CATEGORY_BOTTOM,
- INDIC_MATRA_CATEGORY_TOP_AND_LEFT = 8 + INDIC_MATRA_CATEGORY_LEFT,
- INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = 8 + INDIC_MATRA_CATEGORY_LEFT,
- INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = 8 + INDIC_MATRA_CATEGORY_RIGHT,
+ INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT = POS_MATRAS,
+ INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT = POS_LEFT_MATRA,
+ INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM = POS_MATRAS,
+ INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT = POS_MATRAS,
+ INDIC_MATRA_CATEGORY_TOP_AND_LEFT = POS_LEFT_MATRA,
+ INDIC_MATRA_CATEGORY_TOP_AND_LEFT_AND_RIGHT = POS_LEFT_MATRA,
+ INDIC_MATRA_CATEGORY_TOP_AND_RIGHT = POS_MATRAS,
INDIC_MATRA_CATEGORY_INVISIBLE = INDIC_MATRA_CATEGORY_NOT_APPLICABLE,
INDIC_MATRA_CATEGORY_OVERSTRUCK = INDIC_MATRA_CATEGORY_NOT_APPLICABLE,