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

Вниз

OpenGL не хочет отображать букву "я"   Найти похожие ветки 

 
alpha5 ©   (2006-10-15 17:19) [0]

Привет всем!
У меня возник такой вопрос: почесу OpenGL не хочет отображать малую букву "я" ?
Код такой:
на создание формы:

{создание графических объектов на основе символов шрифта формы}
 wglUseFontBitmaps(canvas.handle, 0, 255, 1000);


в этапе прорисовки:

glRasterPos3f( 1, 2, 0 );
OutText(PChar( "Брянская область" ));


и сама процедура OutText:

procedure TFormMain.OutText (txt : PChar);
begin
glPushAttrib(GL_ALL_ATTRIB_BITS);
glListBase(1000);
glCallLists(Length (txt), GL_UNSIGNED_BYTE, txt);
glPopAttrib;
end;


Может быть возможно подключать файл шрифтов? Как это сделать - не знаю.
Или тут проблема в другом?

Подскажите пожалуйста!!! Очень нужно

Заранее спасибо.


 
Rial ©   (2006-10-15 18:18) [1]

Const
NumOfSymbols = $100;

Id:=glGenLists(NumOfSymbols + 1);
wglUseFontBitmaps(canvas.handle, 0, NumOfSymbols, Id);


 
alpha5 ©   (2006-10-15 19:39) [2]

Нет, к сожалению, не помогло.
Вообще ничего не выводится.


 
Rial ©   (2006-10-15 20:11) [3]

> [2] alpha5 ©   (15.10.06 19:39)
> Нет, к сожалению, не помогло.
> Вообще ничего не выводится.


Стоит попробывать отредактировать и другую часть кода.

procedure TFormMain.OutText(Const Id : Integer; Const Txt : PChar);
begin
glPushAttrib(GL_ALL_ATTRIB_BITS);
 glListBase(Id); //Тот самый наш идентификатор, запомним его
 glCallLists(StrLen(Txt), GL_UNSIGNED_BYTE, Txt);
glPopAttrib;
end;

Можно и так : ))

procedure TFormMain.OutText(Const Id : Integer; Txt : String);
begin
Txt :=Txt + #0;
glPushAttrib(GL_ALL_ATTRIB_BITS);
 glListBase(Id);
 glCallLists(Length(Txt) - 1, GL_UNSIGNED_BYTE, @Txt[1]);
glPopAttrib;
end;

В конце, естественно :
 glDeleteLists(Id, NumOfSymbols + 1);

Только вот интересно, до моей поправки только ли буква
"я" не выводилась ?

И еще. Если и теперь что то не работает, то ошибка, очевидно,
в другом месте. Так что если что, копируй больше кода.


 
alpha5 ©   (2006-10-15 21:16) [4]

Rial, СПАСИБО тебе большое. Всё получилось.
Просто я забыл подкорректировать процедуру
procedure TFormMain.OutText (txt : PChar);

А насчёт этого вопроса

> Только вот интересно, до моей поправки только ли буква
> "я" не выводилась ?

выводились все буквы, кроме вот этой вот "злой" буквы "я" (по крайней мере других осечек не замечал).
Я даже пробовал выводить "Я" большую. Получалось.


 
k1borg   (2006-10-15 21:32) [5]

а скажи, если не секрет зачем тебе буква "я" :))


 
alpha5 ©   (2006-10-15 21:36) [6]

типа:
Брянская область
Владимирская область
Нижегородская область

- это подписи


 
Ketmar ©   (2006-10-15 21:39) [7]

пиши "брйанскайа область, камрады!"
%-)


 
alpha5 ©   (2006-10-15 21:46) [8]

н-да, интересно, но нет. Хотя если так писать, то писать
"превед, брйанзкайа облаздь"
или типа того.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
2-1188455990
mfender
2007-08-30 10:39
2007.09.23
TIdPOP3 - ошибка


15-1187835901
Slider007
2007-08-23 06:25
2007.09.23
С днем рождения ! 23 августа 2007 четверг


3-1179604970
Котюргин
2007-05-20 00:02
2007.09.23
Запрос с параметрами


15-1188156848
Dik59
2007-08-26 23:34
2007.09.23
Странности с установкой RX-компонент


15-1187937017
БарЛог
2007-08-24 10:30
2007.09.23
Windows, отслеживание изменения конфигурации компьютеров