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

Вниз

OpenGL - бегущая строка   Найти похожие ветки 

 
dm37   (2005-09-13 09:06) [0]

помогите пожалуйста с бегущей строкой
Может у кого есть пример работы с текстом в OpenGL, киньте пожалуйста (или ссылку на аналогичный пример)


 
WondeRu ©   (2005-09-13 11:42) [1]

http://www.mirgames.ru/article/opengl/around_gl
6 раздел глянь


 
Кефир87 ©   (2005-09-14 02:00) [2]

{
Вывод текста
//Взял у того кто взял у Darthman"а и подделано под собственные нужды
}
unit uText;

interface

uses
 Windows, openGl, uGlobal;

var
 fontbase, fontbase2 : GLuint;

procedure InitializeFont(h_DC : HDC);
procedure InitializeFont2(h_DC : HDC);
procedure glWrite(tx, ty : integer; text : String; r:single=1; g:single=1; b:single=1);
procedure glWrite2(tx, ty : integer; text : String);

implementation

//=============================================================================
// создаем простейший битмапный шрифт
//=============================================================================
procedure InitializeFont(h_DC : HDC);
var
 font : HFONT;
begin
 fontbase := glGenLists(96);
 font := CreateFont(18, 10, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET, OUT_TT_PRECIS,
   CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY , FF_DONTCARE or DEFAULT_PITCH, "Courier New");
 SelectObject(h_DC, font);
 wglUseFontBitmaps(h_DC, 32, 96, fontbase);
 DeleteObject(font);
end;

procedure InitializeFont2(h_DC : HDC);
var
 font : HFONT;
begin
 fontbase2 := glGenLists(96);
 font := CreateFont(38, 10, 0, 0, FW_BOLD, 0, 0, 0, ANSI_CHARSET, OUT_TT_PRECIS,
   CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY , FF_DONTCARE or DEFAULT_PITCH, "Courier New");
 SelectObject(h_DC, font);
 wglUseFontBitmaps(h_DC, 32, 96, fontbase2);
 DeleteObject(font);
end;

//=============================================================================
// вывести символ
//=============================================================================
procedure glPutchar(text : PChar);
begin
 if (text = "") then Exit;
 glPushAttrib(GL_LIST_BIT);
 glListBase(fontbase - 32);
 glCallLists(length(text), GL_UNSIGNED_BYTE, text);
 glPopAttrib();
end;

procedure glPutchar2(text : PChar);
begin
 if (text = "") then Exit;
 glPushAttrib(GL_LIST_BIT);
 glListBase(fontbase2 - 32);
 glCallLists(length(text), GL_UNSIGNED_BYTE, text);
 glPopAttrib();
end;

//=============================================================================
// Рисование заданного текста в координатах Х и У
//=============================================================================
procedure glWrite(tx, ty : integer; text : String; r:single=1; g:single=1; b:single=1);
begin
 glDisable(GL_DEPTH_TEST);
 glDisable(GL_LIGHTING);
 glDisable(GL_TEXTURE_2D);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(0, S_WIDTH, 0, S_HEIGHT, -1, 1);

 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();

 glColor3f(r, g, b);
 glRasterPos2i(tx, ty);
 glPutchar(PChar(text));
 
 glEnable(GL_DEPTH_TEST);
 glEnable(GL_LIGHTING);
 glEnable(GL_TEXTURE_2D);
end;

procedure glWrite2(tx, ty : integer; text : String);
begin
 glDisable(GL_DEPTH_TEST);
 glDisable(GL_LIGHTING);
 glDisable(GL_TEXTURE_2D);
 glMatrixMode(GL_PROJECTION);
 glPushMatrix();
 glLoadIdentity();
 glOrtho(0, S_WIDTH, 0, S_HEIGHT, -1, 1);
 glMatrixMode(GL_MODELVIEW);
 glPushMatrix();
 glLoadIdentity();
 glColor3f(1, 1, 1);
 glRasterPos2i(tx, ty);
 glPutchar2(PChar(text));
 glMatrixMode(GL_PROJECTION);
 glPopMatrix();
 glMatrixMode(GL_MODELVIEW);
 glPopMatrix();
 glEnable(GL_DEPTH_TEST);
 glEnable(GL_LIGHTING);
 glEnable(GL_TEXTURE_2D);
end;

end.


 
dm37   (2005-09-14 06:07) [3]

Спасибо, посмотрю.
а где взять модуль uGlobal, если не сложно вышлите на e-mail.


 
Кефир87 ©   (2005-09-14 14:36) [4]

А это лишее, от туда берутся глобальные переменные S_WIDTH и S_HEIGHT которые содержат ширину и высоту экрана. Эти переменные можно в этом модуле объявить а можно просто эти переменные заменить на нужные значения 8)

{
 Наиглобальнейшие переменные и константы
}
unit uGlobal;

interface

const
 RAD = 180/pi;
var
 S_WIDTH  : Integer = 800;
 S_HEIGHT : Integer = 600;
 S_BITCNT : Integer = 32;
 race_time:Cardinal = 0;
 TickCount : Cardinal;

implementation

end.


 
dm37   (2005-09-14 14:41) [5]

Спасибо будем разбираться



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.03 c
15-1139204810
Ega23
2006-02-06 08:46
2006.02.26
С Днём рождения! 4 февраля


15-1139239108
DillerXX
2006-02-06 18:18
2006.02.26
Нравится ли вам Дельфин?


2-1139228054
**Сергей**
2006-02-06 15:14
2006.02.26
Опять про пункт меню...


2-1139250325
TimScorp
2006-02-06 21:25
2006.02.26
EConvertError


15-1139406227
R.T.
2006-02-08 16:43
2006.02.26
TChart не печатает на сетевой принтер