Форум: "Media";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизТекст в OpenGL Найти похожие ветки
← →
GLText (2006-01-28 23:26) [0]Тут вот начал разбираться с OpenGL и никак
не въеду как с текстами работать.
Help рыл, рыл... ничего ненарыл.
Мне пока нинадо 3D, а так чтобы фигуру вместе
с текстом вращать можно было... Тут вот ниже кусок
кода рисуется триугольник.. Вот как под ним ченить
написать?
.....
hrc: HGLRC;
.....
procedure TForm1.FormPaint(Sender: TObject);
begin
wglMakeCurrent ( Canvas.Handle , hrc );
glClearColor(0.0, 0.0, 0.4, 1.0);
glClear ( GL_COLOR_BUFFER_BIT );
glRotatef(35.0, 1.0, 0.8, 0.0);
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(-0.5, -0.5);
glVertex2f(0.0, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
wglMakeCurrent (0, 0) ;
end;
← →
grouzd[E]v © (2006-01-28 23:54) [1]
var
fontbase_normal : GLuint;
procedure InitializeFlatFont(hdc : HDC; font_name : string; scale_x, scale_y : integer);
var
font : HFONT;
begin
fontbase_normal := glGenLists(96);
font := CreateFont(scale_y, scale_x, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE or DEFAULT_PITCH, PChar(font_name));
SelectObject(hdc, font);
wglUseFontBitmaps(hdc, 32, 224, fontbase_normal);
DeleteObject(font);
end;
//вывод текста TEXT
procedure WriteText(text : PChar);
begin
if (text = "") then exit; //если текста нет - выход
glPushAttrib(GL_LIST_BIT);
glListBase(fontbase_normal - 32);
glCallLists(length(text), GL_UNSIGNED_BYTE, text); //рисуем
glPopAttrib;
end;
//вывод текста TEXT с координатами (TX; TY)
procedure WriteFlatText(tx, ty : integer; text : string);
begin
glRasterPos2i(tx, ty); //позиция
WriteText(PChar(text)); //вывод
end;
использовать - при старте программы - InitializeFlatFont,
при рендеринге - WriteFlatText
а вообще Краснов, конечно
---
... we are walking on a thin line and you better avoid the risk ...
← →
GLText (2006-01-29 04:07) [2]>grouzd[E]v
Чёт не получается.... не видно текста
Можно попадробней, я с OpenGL Вот только нидавно сталкнулся.
Какие должны быть параметры у
InitializeFlatFont(...,...., SCALE_X, SCALE_Y);
SCALE_X,Y - Чему должны быть равны?
и ТХ, TY в WriteFlatText?
Если можно маленький кусок рабочего примера.....
И еще вопрос: если шрифт у одной надписи один а у второй
другой - нужно вызывать для каждой InitializeFlatFont();?
← →
XProger © (2006-01-29 18:46) [3]http://www.libray.narod.ru/Program/DOpenGL/index.html
← →
grouzd[E]v © (2006-01-29 20:32) [4]
> [2] GLText (29.01.06 04:07)
procedure InitializeFlatFont(хэндл, имя шрифта, ширина, высота);
procedure WriteFlatText(координаты x и y, собственно строка =);
> Если можно маленький кусок рабочего примера.....
Ну....вообще-то это он и есть =)
> И еще вопрос: если шрифт у одной надписи один а у второй
> другой - нужно вызывать для каждой InitializeFlatFont();?
Айай, хитрый какой =) придется тебе в коде таки покопаться
> http://www.libray.narod.ru/Program/DOpenGL/index.html
Bingo. Прямо туда, не раздумывая
---
... we are walking on a thin line and you better avoid the risk ...
← →
XProger © (2006-01-30 05:49) [5]Звиняйте, сайтик прикрыли... тогда вот это попробуй:
http://XProger.narod.ru/Files/OpenGL_book.rar
http://XProger.narod.ru/Files/Disk.rar
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c