It very much looks as if the rendering of Unicode values from the "bigger" numbers is broken on win32.
The code in fl_font_win32.cxx for handling the ::draw() mechanisms seems to be assuming that any UTF8 encoded char can be represented by 1 win32 WCHAR, but of course this is not true, since the win32 WCHAR is only 16 bits... As a result, any Unicode point above 0x10000 gets wrapped back over from 0... What we are doing is converting the UTF8 stream into UCS values, then assigning that UCS to a single win32 WCHAR. (see ~ line 356 and thereabouts) So when I need to render glyphs from the higher pages (musical notation in this case from U+1D100 onwards) they get trashed on win32. What we need to do is convert the UCS into UTF16 surrogate pairs and render that, of course. Thoughts? -- Ian SELEX Galileo Ltd Registered Office: Sigma House, Christopher Martin Road, Basildon, Essex SS14 3EL A company registered in England & Wales. Company no. 02426132 ******************************************************************** This email and any attachments are confidential to the intended recipient and may also be privileged. If you are not the intended recipient please delete it from your system and notify the sender. You should not copy it or use it for any purpose nor disclose or distribute its contents to any other person. ******************************************************************** _______________________________________________ fltk-dev mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk-dev
