[HarfBuzz] [Harfbuzz] Issue in Malayalam String Rendering
Uvaraja Pandian
p.uvaraja at gmail.com
Thu Sep 11 02:06:37 PDT 2014
Hi Team,
We are using the Harfbuzz 0.9.34 version.
While rendering the Malayalam string using the Harfbuzz and Freetype
engine, we see some issues.
*String used: *ക്കേ
*Unicode value:* 0x0d15, 0x0d4d, 0x0d15, 0x0d47, 0x0000
*Harfbuzz Output:*
*Proper Output :*
*Font File used:* Akruti Family, Since this is a licensed font file, we are
not able to share it.
*Issue in Detail:*
In the font file,
script mlym {
# Malayalam
feature Akhands;
feature BelowBaseSubstitutions;
feature *HalfForms*;
feature PostBaseForms;
feature PostBaseSubstitutions;
feature *PreBaseSubstitutions*;
}
As per the Harfbuzz implementation, below substitution is happening as part
of the HalfForms ,
0x0d15 & 0x0d4d è XYZ character,
so the output is XYZ, 0x0d15, 0x0d47
Final re-ordering happens and rearranges as below,
XYZ, 0x0d15, 0x0d47 è XYZ, 0x0d47, 0x0d15
As per the PreBaseSubstitutions,
XYZ & 0x0d15 is not matched and the output is not proper.
In-Order to solve this issue, below changes has been done,
Final Re-ordering,
PSB for the code changes
As per the PreBaseSubstitutions,
XYZ & 0x0d15 forms the final character.
*Code Modifications:*
In the file hb-ot-shape-complex-indic.cc, if we modify the lines as below
in the function final_reordering_syllable() it is working,
if (start + 1 < end && start < base) /* Otherwise there can't be any
pre-base matra characters. */
{
/* If we lost track of base, alas, position before last thingy. */
unsigned int new_pos = base == end ? base - 2 : base - 1;
/* Malayalam / Tamil do not have "half" forms or explicit virama forms.
* The glyphs formed by 'half' are Chillus or ligated explicit viramas.
* We want to position matra after them.
*/
if (buffer->props.script != HB_SCRIPT_MALAYALAM &&
buffer->props.script != HB_SCRIPT_TAMIL)
{
…
}
if (start < new_pos && info[new_pos].indic_position
() != POS_PRE_M)
{
…
} else {
…
}
}
}
Please comment, will it have any side effect.
Best Regards,
Uvaraja P.
Sindhura P.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20140911/afbf8b87/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 2413 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20140911/afbf8b87/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 1266 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/harfbuzz/attachments/20140911/afbf8b87/attachment.png>
More information about the HarfBuzz
mailing list