[squeak-dev] Re: Sq font rendering [was: The future of Squeak & Pharo ... etc]

Philippe Marschall philippe.marschall at gmail.com
Mon Jun 29 19:04:07 UTC 2009


2009/6/29 Igor Stasenko <siguctua at gmail.com>:
> 2009/6/29 Philippe Marschall <philippe.marschall at gmail.com>:
>> 2009/6/28 Klaus D. Witzel <klaus.witzel at cobss.com>:
>>> ...
>>> goals: render _every_ glyph that is in _any_ modern (Unicode) platform font;
>>> make fonts offline and online usable, especially on small devices if needed,
>>> on demand (by end user).
>>
>> So you have to select the font and you don't select it using #leadingChar?
>>
>
> Btw, can someone explain me, what is a #leadingChar in Character, and
> how it affects the output/input & different encodings/text
> representation?

At some point when rendering text you need to know the language of it.
You could put this information in a lot of different places like
paragraph, document, whatever. However since an interned integer on
Squeak currently has 30bits available and Unicode is a 22bit character
set why not take that 8 spare bits put that information into each
character? Yeah, there some minor limitations like there are way more
than 255 languages in the world and for any latin-1 character you
wouldn't be able to set the language and if you wanted to use unicode
you're supposed to set the language of non-Latin1 characters to
something different than the one of the Latin-1 characters. It could
kinda work if there was only one image, sort of. These days you'd
probably use FreeType to get nice text rendering which doesn't need or
use the information at the character level but anyway.

Now it starts to get funny when you're interacting with the outside
world. They are not likely to use Squeak so they don't pass language
information at the character level to you. So what language do you use
for incoming characters? Well isn't really defined because it never
really was designed to handle that.

Seaside kinda tends to communicate with the outside world, you see the
problem? And our code ideally should also run on GemStone, VAST, VW,
....

Oh, and the language is of course taken into account for #=. That's
funny because the strings you get could come from anywhere: database,
ui, file, .... where you have no control whatsoever over what language
is used. It could also have been done on a different computer with a
different language setting.

Cheers
Philippe



More information about the Squeak-dev mailing list