Форум: "Media";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Media";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c