OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
3 * | 3 * |
4 * This is part of HarfBuzz, an OpenType Layout engine library. | 4 * This is part of HarfBuzz, an OpenType Layout engine library. |
5 * | 5 * |
6 * Permission is hereby granted, without written agreement and without | 6 * Permission is hereby granted, without written agreement and without |
7 * license or royalty fees, to use, copy, modify, and distribute this | 7 * license or royalty fees, to use, copy, modify, and distribute this |
8 * software and its documentation for any purpose, provided that the | 8 * software and its documentation for any purpose, provided that the |
9 * above copyright notice and the following two paragraphs appear in | 9 * above copyright notice and the following two paragraphs appear in |
10 * all copies of this software. | 10 * all copies of this software. |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 | 147 |
148 | 148 |
149 typedef enum { | 149 typedef enum { |
150 HB_LeftToRight = 0, | 150 HB_LeftToRight = 0, |
151 HB_RightToLeft = 1 | 151 HB_RightToLeft = 1 |
152 } HB_StringToGlyphsFlags; | 152 } HB_StringToGlyphsFlags; |
153 | 153 |
154 typedef enum { | 154 typedef enum { |
155 HB_ShaperFlag_Default = 0, | 155 HB_ShaperFlag_Default = 0, |
156 HB_ShaperFlag_NoKerning = 1, | 156 HB_ShaperFlag_NoKerning = 1, |
157 HB_ShaperFlag_UseDesignMetrics = 2 | 157 HB_ShaperFlag_UseDesignMetrics = 1 << 1, |
| 158 /* Arabic vowels in some fonts (Times New Roman, at least) have |
| 159 non-zero advances, when they should be zero. Setting this shaper |
| 160 flag causes us to zero out the advances for mark glyphs. */ |
| 161 HB_ShaperFlag_ArabicHack = 1 << 2 |
158 } HB_ShaperFlag; | 162 } HB_ShaperFlag; |
159 | 163 |
160 /* | 164 /* |
161 highest value means highest priority for justification. Justification is done
by first inserting kashidas | 165 highest value means highest priority for justification. Justification is done
by first inserting kashidas |
162 starting with the highest priority positions, then stretching spaces, afterwa
rds extending inter char | 166 starting with the highest priority positions, then stretching spaces, afterwa
rds extending inter char |
163 spacing, and last spacing between arabic words. | 167 spacing, and last spacing between arabic words. |
164 NoJustification is for example set for arabic where no Kashida can be inserte
d or for diacritics. | 168 NoJustification is for example set for arabic where no Kashida can be inserte
d or for diacritics. |
165 */ | 169 */ |
166 typedef enum { | 170 typedef enum { |
167 HB_NoJustification= 0, /* Justification can't be applied after this glyph
*/ | 171 HB_NoJustification= 0, /* Justification can't be applied after this glyph
*/ |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 269 |
266 /* internal */ | 270 /* internal */ |
267 HB_Bool kerning_applied; /* output: true if kerning was appli
ed by the shaper */ | 271 HB_Bool kerning_applied; /* output: true if kerning was appli
ed by the shaper */ |
268 }; | 272 }; |
269 | 273 |
270 HB_Bool HB_ShapeItem(HB_ShaperItem *item); | 274 HB_Bool HB_ShapeItem(HB_ShaperItem *item); |
271 | 275 |
272 HB_END_HEADER | 276 HB_END_HEADER |
273 | 277 |
274 #endif | 278 #endif |
OLD | NEW |