On 04/06/2011 05:22 AM, MacArthur, Ian (SELEX GALILEO, UK) wrote:
>
> 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?

The conversion function *should* be converting to correct UTF16. The 
code in fltk2.0 does this and should be copied.

_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to