Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.21;
Скачать: CL | DM;

Вниз

Кириллица в OpenGL   Найти похожие ветки 

 
Чайник ©   (2010-01-20 16:14) [0]

Как загрузить кириллические шрифты в 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; - не помогает...


 
@!!ex ©   (2010-01-20 16:25) [1]

У меня шрифт создается вот так:
 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);

и все работает.


 
Чайник ©   (2010-01-20 16:33) [2]

> @!!ex

lf - это кто? TFont?


 
Чайник ©   (2010-01-20 17:12) [3]

Все оказалось гораздо проще - это чудеса D2009  и юникода.
Поставил wglUseFontOutlinesA вместо wglUseFontOutlines и вуаля!

... блин,два дня парился...



Страницы: 1 вся ветка

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
2-1263924681
Б
2010-01-19 21:11
2010.03.21
Сколько различных символов содержит строка.


1-1240160543
Cobalt
2009-04-19 21:02
2010.03.21
Отчего ошибка при сравнении Variant?


6-1214832907
Галинка
2008-06-30 17:35
2010.03.21
Sckets: почему так получается


15-1262172412
Делфиец
2009-12-30 14:26
2010.03.21
Что готовить 31-го


15-1262056626
товарищ икс
2009-12-29 06:17
2010.03.21
Младший бит на php