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

Вниз

Растровые шрифты в классах (OpenGL API)   Найти похожие ветки 

 
Toxic   (2005-06-03 22:39) [0]

Здравствуйте, Уважаемые.
Нужна консультация по такому вопросу, как генерация растровых шрифтов с использованием wglUseFontBitmaps.
Есть две функции:
F1
var font : HFONT;
begin
_FNT := glGenLists(96);        
font := CreateFont(-14, 0, 0, 0, FW_BOLD, 0, 0, 0, ANSI_CHARSET, OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE or DEFAULT_PITCH,
"TemplateCapsSSK");
SelectObject(wglGetCurrentDC, font);      
wglUseFontBitmaps(h_DC, 32, 96, _FNT);  
end;
и
F2 для рендера надписей
var drawRect : TRect;
begin
glPushAttrib(GL_DEPTH_TEST);  
glDisable(GL_DEPTH_TEST);    
glDisable(GL_TEXTURE_2D);    
glMatrixMode(GL_PROJECTION);  
glPushMatrix();              
glLoadIdentity();

GetWindowRect(GetDesktopWindow(), drawRect);  
glOrtho(0, drawRect.right, 0, drawRect.bottom, -1, 1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();            
glLoadIdentity();
glColor3f(0.0, 0.4, 0.0);  

glRasterPos2i(X, Y);                    
glPushAttrib(GL_LIST_BIT);              
glListBase(_FNT - 32);            
glCallLists(length(text), GL_UNSIGNED_BYTE, PChar(text));
glPopAttrib();                                      

glMatrixMode(GL_PROJECTION);
glPopMatrix();              
glMatrixMode(GL_MODELVIEW);  
glPopMatrix();              
glEnable(GL_TEXTURE_2D);    
glPopAttrib();              

Эти функции были мной позаимствованы с чужих исходников. И до тех пор, пока они висели вне всяких классов, все было нормально.
Стоило поместить их в классы, как все надписи прекратили существовать.
От чего это и как с этим бороться?

P.S.: Пока писал это, посетила мысль, что, возможно, проблема в том, что wglGetCurrentDC, находясь в классе или не может получить контекст текущего устройства, т.к. находится в отдельном потоке или чего-нибудь в этом роде. Возможно ли это?


 
WondeRu ©   (2005-06-04 00:00) [1]

Стоило поместить их в классы, как все надписи прекратили существовать.
От чего это и как с этим бороться?

Еще раз проверять!


 
XProger ©   (2005-06-04 00:05) [2]


SelectObject(h_DC, font);      
wglUseFontBitmaps(h_DC, 32, 96, _FNT);
DeleteObject(font);

А если так?



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1126728661
syte_ser78
2005-09-15 00:11
2005.10.09
Стоит ли апгрейдится?


1-1127129821
Tor
2005-09-19 15:37
2005.10.09
Контроль перефирийных устройств (принтер, сканер, CD-RW)


4-1123704459
SergProger
2005-08-11 00:07
2005.10.09
Коды клавиш


14-1126934091
guesst
2005-09-17 09:14
2005.10.09
fastreport


3-1124792958
Juice
2005-08-23 14:29
2005.10.09
Что в FIBPlus-компонентах вызывать вместо first, prior ?