Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.044 c
2-1188279351
AllDer
2007-08-28 09:35
2007.09.23
Сообщение смены разрешения


15-1187779055
AZIZE
2007-08-22 14:37
2007.09.23
Проблемка


15-1187805320
ANTPro
2007-08-22 21:55
2007.09.23
Разъем питания процессора...


2-1188173770
HF-Trade
2007-08-27 04:16
2007.09.23
Инвертировать мышь по оси Y


15-1188044874
Бася
2007-08-25 16:27
2007.09.23
Эксперт для Делфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский