![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OpenGL не хочет отображать букву "я" [Delphi, Windows]
alpha5 © (2006-10-15 17:19:00)Привет всем!
У меня возник такой вопрос: почесу 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;
Может быть возможно подключать файл шрифтов? Как это сделать - не знаю.
Или тут проблема в другом?
Подскажите пожалуйста!!! Очень нужно
Заранее спасибо.
alpha5 (2006-10-15 21:46:00) [1]н-да, интересно, но нет. Хотя если так писать, то писать
"превед, брйанзкайа облаздь"
или типа того.
Ketmar (2006-10-15 21:39:00) [2]пиши "брйанскайа область, камрады!"
%-)
alpha5 (2006-10-15 21:36:00) [3]типа:
Брянская область
Владимирская область
Нижегородская область
- это подписи
k1borg (2006-10-15 21:32:00) [4]а скажи, если не секрет зачем тебе буква "я" :))
alpha5 (2006-10-15 21:16:00) [5]Rial, СПАСИБО тебе большое. Всё получилось.
Просто я забыл подкорректировать процедуру
procedure TFormMain.OutText (txt : PChar);
А насчёт этого вопроса
> Только вот интересно, до моей поправки только ли буква
> "я" не выводилась ?
выводились все буквы, кроме вот этой вот "злой" буквы "я" (по крайней мере других осечек не замечал).
Я даже пробовал выводить "Я" большую. Получалось.
Rial (2006-10-15 20:11:00) [6]> [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 19:39:00) [7]Нет, к сожалению, не помогло.
Вообще ничего не выводится.
Rial (2006-10-15 18:18:00) [8]Const
NumOfSymbols = $100;
Id:=glGenLists(NumOfSymbols + 1);
wglUseFontBitmaps(canvas.handle, 0, NumOfSymbols, Id);