|
#1
|
||||
|
||||
Текст в OpenGL
В общем, так:
есть процедура таймера, в которой всяческие 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; TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#3
|
||||
|
||||
На txtFont ругается... чтот я непойму откуда его брать
|
#4
|
||||
|
||||
Цитата:
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#5
|
||||
|
||||
Гугл я читал, и не только для приличия... просто не знаю кому как, а мне не все и сразу там понятно А вопросы задавать то где-то надо.
А за ссылочку спасибо. статьи эти видел но наверно невнимателен был - про текст незаметил. |