I needed real Unicode text (w/o any limitation) in my application, so I took the challenge and implemented it.
With my changes, the bitmap font IS Unicode aware. I kept the existing published structure (ranges) for backward compatibility with form files, although I would have implemented it a little different. The property names like "StartASCII" are kept for the same reason.
The ranges have widechar start/stop, and a lot of logic is adjusted.
Basic types are now "char" and "string" (no Ansi anymore), so it should be still compatible with older Delphi versions.
The WindowsFont class has very simple "EnsureString" and "EnsureChars" methods to add everything necessary for the display.
EnsureChars takes a range, EnsureString takes a string (w/o any kind of sorting, just pass anything you need :)). They are both adding content, not removing anything. Use Ranges.Clear to start clean.
Look at the included WinFont demo to see how simple it works...
I hope it gets accepted...
Side effects: WideBitmapFont is not needed anymore (I did not change it); glwindows is also adjusted (removed "ansi").
Offtopic: I also adjusted the canvas bench, it was not fair to compare onscreen drawing with opengl doublebuffering.