Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

Текст в 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 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
15-1149860076
StriderMan
2006-06-09 17:34
2006.07.09
Можно ли написать прогу для PIC-контроллера на Делфи?


2-1151128286
JEK_DELPHI
2006-06-24 09:51
2006.07.09
Как можна из приложения запустить *.chm


2-1150387058
Тимофей Юрьевич
2006-06-15 19:57
2006.07.09
лохонулся,как быть с формой


3-1146976673
Kurillka
2006-05-07 08:37
2006.07.09
Как настроить MS SQL 2000 для отсылки SMS?


5-1135002673
Afonya
2005-12-19 17:31
2006.07.09
Добавления компонента в IDE (через создание пакета)