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

Reply via email to