![]() |
|
|
#1
|
||||
|
||||
|
В общем, так:
есть процедура таймера, в которой всяческие glBegin - ... - glEnd рисуют картинку. Как мне поверх этой картинки вывести на форме текст средствами OpenGL? Иначе говоря требуется что то вроде такого: procedure AAA(x,y: integer; s: string); Понимаю вопрос глупый и наверное простой, но я что то простого ответа не нашел, мб плохо искал, незнаю. Встречал предложения выводить текст как набор прямоугольных текстурок, представляющих собой перерисованные шрифты. Но это на мой взгляд как то геморно... есть же наверно более простые методы? |
|
#2
|
||||
|
||||
|
искал да, плохо. смотри CreateFontIndirect и wglUseFontBitmaps, затем пиши что хочешь (в ортогональной проекции):
Код:
procedure glPrint(x,y: GLfloat; AText: PChar; VAlign: Byte = 0);
begin
glEnable(GL_TEXTURE_2D);
glPushAttrib(GL_LIST_BIT);
glListBase(txtFont-32);
if(VAlign=0)then
glRasterPos2f(x,y+12)
else
if(VAlign=1)then
glRasterPos2f(x,y+6)
else
glRasterPos2f(x,y);
glCallLists(Length(AText), GL_UNSIGNED_BYTE, AText);
glPopAttrib;
end; |
|
#3
|
||||
|
||||
|
На txtFont ругается... чтот я непойму откуда его брать
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Гугл я читал, и не только для приличия... просто не знаю кому как, а мне не все и сразу там понятно
А вопросы задавать то где-то надо.А за ссылочку спасибо. статьи эти видел но наверно невнимателен был - про текст незаметил. |