enigma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Enigma-devel] Re: Enigma 1.00 - request for level updates


From: Ronald Lamprecht
Subject: [Enigma-devel] Re: Enigma 1.00 - request for level updates
Date: Thu, 12 Oct 2006 21:22:15 +0200
User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)

Hi,

capkoh wrote:
// Rejected from enigma-devel because of 300 KB exceeding.
// I've compressed attachments for this letter.

Hmm? I cannot detect a special "slow motion" effect on Russian buttons
with my computer. There is always a certain jumping of the cursor on
entering buttons.

I've attached Filemon reports which was acquired in two cases. I record them 
when I move cursor to the language button in Options menu (i.e. one button's 
caption update).

- filemon_english_caption.log : english is chosen
- filemon_russian_caption.log : russian is chosen

As you see, there are much more file requests when russian chosen. And that is only ONE caption update.What will be if I move mouse over a number of menu buttons?! Most users will play in english, and this really have low priority. Btw, all strings are translated into other languages? There are a number of untranslated strings not only in Options menu. Why "Ratings Update" (except Russian) and "User Name" are not translated into other languages?

It looks like SDL_ttf accesses the font for every displayed cyrillic
character again and again. If you look at the SDL source SDL_ttf.c:
static FT_Error Find_Glyph( TTF_Font* font, Uint16 ch, int want )
{
        int retval = 0;

        if( ch < 256 ) {
                font->current = &font->cache[ch];
        } else {
                if ( font->scratch.cached != ch ) {
                        Flush_Glyph( &font->scratch );
                }
                font->current = &font->scratch;
        }
        if ( (font->current->stored & want) != want ) {
                retval = Load_Glyph( font, ch, font->current, want );
        }
        return retval;
}

For all characters besides the first utf coding page the Load_Glph()
ends in a FT_Get_Char_Index(). This seems to reload the Cyrillic glyphs
for every usage.

If someone succeeds in recompiling SDL_ttf.dll we can simply enlarge the
cache to 5*256 which would include all Greek and Cyrillic characters.
This test would show if it makes sense to improve the cache and to
request the SDL team for an update of SDL_ttf.

And there is some errors in Spanish (?) translation.
"Idioma", "Modo de video", "Correction gamma" -> ":" skipped

We did make a lot of changes but did not yet ask the translators to
update the translations as still new strings are added. The Russian and
Hungarian translations were added in april/may and thus contain some
more translations than other languages that are still based on 0.92.

Do you see a difference between buttons with Russian
titles and buttons with pure number or icon titles?

No, they seems to be identical. But I could skip something...

Hmm ... looks like some unnecessary redraws within Enigma, that could be
optimized, too.

Yes - SDL is missing an international keyboard input library. Not only cyrillic chars, but Umlauts etc. will not be insertable on some systems, especially Linux, as well.

Funny, but in this (alpha2) version I can see cyrillic chars but can not type ones in edit field (see attached picture).

We can display and handle any character contained in our font.
Internally we use utf-8 from XML parts, frontend to the SDL GUI - no
limitations besides the font itself.

But the keyboard input is another subject. There have been many requests
to the SDL team. You will find info on the mailing lists, f.e. the
following thread:

http://thread.gmane.org/gmane.comp.lib.sdl/22249/focus=22349

I fear we will need to write our own solution. Accuatlly I did add the
small case German Umlauts for Linux by a small hack.

P.S. There must be two attachments. Mail me if not.

All o.k. - just the mailing list needs to have some limit.

- Ronald





reply via email to

[Prev in Thread] Current Thread [Next in Thread]