Hello
Please , help me with cyrillic font ( ttf , not pcx file )
I try use Glyph Keeper:
1 | #include "allegro.h" |
2 | #include "glyph.h" |
3 | #include <stdio.h> |
4 | |
5 | GLYPH_FACE *face; |
6 | GLYPH_REND *rend; |
7 | |
8 | int main() |
9 | { |
10 | char *ch; |
11 | |
12 | set_uformat(U_ASCII); |
13 | allegro_init(); |
14 | set_color_depth(32); |
15 | set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0); |
16 | clear_to_color(screen,0xFFFFFF); |
17 | install_keyboard(); |
18 | |
19 | ch="Test: CYRILLIC TEXT"; |
20 | face = gk_load_face_from_file("bera.ttf",0); |
21 | if (!face) exit(1); |
22 | |
23 | rend = gk_create_renderer(face,0); |
24 | if (!rend) exit(2); |
25 | |
26 | gk_rend_set_size_pixels(rend,40,40); |
27 | gk_rend_set_text_alpha_color(rend,0xFF000000); |
28 | gk_render_line_utf8(screen,rend,ch,225,325); |
29 | |
30 | readkey(); |
31 | |
32 | return 0; |
33 | } |
34 | END_OF_MAIN() |
But it show me like this:
Test: ? ? ? ? ? ? ? ? ?
http://www.hostfornet.net/vasilevs/test.png
Help
]]>Have you tried different unicode formats besides U_ASCII?
]]>Yes
I try all:
U_ASCII - fixed size, 8-bit ASCII characters
U_ASCII_CP - alternative 8-bit codepage (see set_ucodepage())
U_UNICODE - fixed size, 16-bit Unicode characters
U_UTF8 - variable size, UTF-8 format Unicode characters
but nothing :-(
By the way . I see your posts in forum. Can we talk online by ICQ etc. ?
I have some questions but my english very poor :-)
Sorry, but I don't use ICQ.
I don't use GlyphKeeper, so I'm not sure if this is relevant.
From this website:
http://agdn.netfirms.com/main/html/unicode.htm
U_CURRENT is set to U_UTF8
void utextout( BITMAP *bmp, const FONT *f, const char *s, int x, int y, int color ) { char buf[ 512 ]; if ( need_uconvert( s, U_ASCII, U_CURRENT ) ) { uconvert( s, U_ASCII, buf, U_CURRENT, sizeof( buf ) ); } else { strcpy( buf, s ); } textout( bmp, f, buf, x, y, color ); }
Using GK, would you need to convert it like this function would?
]]>U_ASCII just plain won't work, that much is obvious.
My instinct is "unconverted text", but if Daniel's advice doesn't help: please attach the font you're using - I've come across Cyrillic TTF fonts that were mapped to weird (KOI-8 or similar) encodings instead of standard Unicode...
]]>Thank you guys !
This code work for me:
show_text(char *text,int *text_size_wh,int *text_size_hi,int *text_wh,int *text_hi,int color){ if ( need_uconvert( text , U_ASCII , U_UTF8 ) ){ uconvert( text , U_ASCII , buf , U_UTF8 , sizeof( buf ) ); text=&buf; } gk_rend_set_size_pixels(rend,text_size_wh,text_size_hi); gk_rend_set_text_alpha(rend,255); gk_rend_set_text_color(rend,colors[color].r,colors[color].g,colors[color].b); gk_render_line_utf8(buffer,rend,text ,text_wh,text_hi); }
But i correct font by font editor :-)
]]>