Главная страница
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.058 c
2-1139303209
pathfinder
2006-02-07 12:06
2006.02.26
ADO и все такое..


8-1126684012
ABS
2005-09-14 11:46
2006.02.26
Вращение


2-1139723356
Seraphim
2006-02-12 08:49
2006.02.26
API


2-1139221644
xroot
2006-02-06 13:27
2006.02.26
WebBrowser фреймы


2-1139161894
CMOS
2006-02-05 20:51
2006.02.26
Множества. Написание оптимизированного кода