![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кириллица в OpenGL [D2005, XP]
Чайник © (2010-01-20 16:14:00)Как загрузить кириллические шрифты в OpenGl?
Создаю фонт так:
FFont.Name:='Arial Cyr';
FFontHDC := CreateDC('Display',nil,nil,nil);
SelectObject(FFontHDC, FFont.Handle);
IF not wglUseFontOutlines (FFontHDC , 0, 255, GLFONT_LIST, 0, 0.1, WGL_FONT_POLYGONS, nil) Then
MessageDlg('Не удалось установить фонт', mtError, [mbOk], 0);
Вывод текста:
procedure TFEditorMain.OutTextGL(Text: AnsiString);
var PCharLitera : PAnsiChar;
begin
PCharLitera := PAnsiChar(Text);
glListBase(GLFONT_LIST);
glCallLists(Length (PCharLitera), GL_UNSIGNED_BYTE, PCharLitera);
end;
Латинские символы - все нормально. Вместо русских - крякозялбли из европейской кодировки. Кто подскажет?
P.S.FFont.Charset := RUSSIAN_CHARSET;- не помогает...
Чайник (2010-01-20 17:12:00) [1]Все оказалось гораздо проще - это чудеса D2009 и юникода.
Поставил wglUseFontOutlinesA вместо wglUseFontOutlines и вуаля!
... блин,два дня парился...
Чайник (2010-01-20 16:33:00) [2]> @!!ex
lf - это кто? TFont?
@!!ex (2010-01-20 16:25:00) [3]У меня шрифт создается вот так:
FillChar(lf, SizeOf(lf), 0);
lf.lfHeight := -1 ;
lf.lfWeight := FW_NORMAL ;
lf.lfCharSet := RUSSIAN_CHARSET ;
lf.lfOutPrecision := OUT_DEFAULT_PRECIS ;
lf.lfClipPrecision := CLIP_DEFAULT_PRECIS ;
lf.lfQuality := DEFAULT_QUALITY ;
lf.lfPitchAndFamily := FF_DONTCARE OR DEFAULT_PITCH;
lstrcpy (lf.lfFaceName, PChar(FName)) ;
hFontNew := CreateFontIndirect(lf);
hOldFont := SelectObject(FDC,hFontNew);
и все работает.