Still trying to track down the issue with glyph's not mapping 1:1 with
Symbol fonts. Could not reproduce
the problem in a test program (it was not picking up Symbol font at
all) so have been working on it in Inkscape trunk.
Traced part of the issue to this area of
inkscape/src/libnrtype/FontInstance.cpp:
theFace=pango_ft2_font_get_face(pFont); // Deprecated, use
pango_fc_font_lock_face() instead
if ( theFace ) {
FT_Select_Charmap(theFace,ft_encoding_unicode) &&
FT_Select_Charmap(theFace,ft_encoding_symbol);
}
Put some debug statements like these
for(i=0x70;i<0xB0;i+=16){
myfile << std::hex << i ;
for(j=i;j<i+16;j++){
myfile << " " << std::hex << FT_Get_Char_Index(theFace,j);
}
myfile <<endl;
}
above and below the FT_Select_Charmap and found
BEFORE
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
in font_instance::InitTheFace set charmap FontName SymbolMT status 0
AFTER
70 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a0 0 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
Then commented out the FT_Select_charmap and found:
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
in font_instance::InitTheFace commented out - no action
AFTER
70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The glyphs used to actually draw the letters were the same in both of
these cases, and were NOT the ones listed above
in the FreeType charmap (for characters >7E && <FF). It seems Pango is
using its own character map
values to derive glyph ids and ignoring the ones set with Freetype.
For instance, character value A8 maps
to glyph 109 (decimal) = 0x6D, not the 0 or 6a shown above. This could
be seen by putting print statements
in the font_instance::LoadGlyph method.
The SymbolMT font reports (via freetype) that it supports both Apple
Roman and MS_SYMBOL (not unicode), but changing it to either one of
those with FT_Select_Charmap made no difference at all in what Inkscape
displayed.
Where is the charmap pango is using???
(Pango 1.28.3, Freetype 2.4.2)
Thanks,
David Mathog
[email protected]
Manager, Sequence Analysis Facility, Biology Division, Caltech
_______________________________________________
gtk-i18n-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-i18n-list