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

Reply via email to