boost::freetype - extension for boost::gil

Rendering text is quite a hard problem. Correct me if I'm wrong, but I think the approach you sketch assumes that there is a one-to-one mapping of characters to glyphs. This is fairly restrictive for English (e.g. no ligatures are possible); it is remarkably ungeneralisable to other languages. Most languages, even if written in the Latin script, require more sophisticated processing.
I imagine it may be a better approach to pass a string of (Unicode?) characters to a function that renders them all at once.
My wrapper does not require that the vector contains a list of only single glyphs. You could also iterate over glyph-pairs or glyph-triples just as easily. So as far as I know, there is no reason why you can't do "unicode" or "ligatures".

Thanks for your reply. On 4/15/07, Tom Brinkman <reportbase@gmail.com> wrote:
Rendering text is quite a hard problem. Correct me if I'm wrong, but I think the approach you sketch assumes that there is a one-to-one mapping of characters to glyphs. This is fairly restrictive for English (e.g. no ligatures are possible); it is remarkably ungeneralisable to other languages. Most languages, even if written in the Latin script, require more sophisticated processing.
I imagine it may be a better approach to pass a string of (Unicode?) characters to a function that renders them all at once.
My wrapper does not require that the vector contains a list of only single glyphs. You could also iterate over glyph-pairs or glyph-triples just as easily. So
as far as I know, there is no reason why you can't do "unicode" or "ligatures".
I'm sorry; I didn't want to suggest I gave an exhaustive enumeration of the kinds of processing that are necessary. I hadn't realised you provide an interface for retrieving ligatures. You seem to suggest that your framework will work with other languages than English (correct me if I'm wrong). Arabic requires marks to be positioned and glyphs to be replaced based on their context. See <http://tinyurl.com/2dskcy> for an impression. Can you give an example of how this works in your framework? Having done some work in the area I know that rendering text is fairly complicated. What is your reason for not hiding this complexity? What are the gains of accessing individual glyphs? Thanks, Rogier
participants (2)
-
Rogier van Dalen
-
Tom Brinkman