![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Завершение работы с GLUT [Delphi, D5, Windows, w2k,wXP]
Closer © (2004-02-09 15:47:00)Когда я закрываю окно созданое с помощю GLUT, процесс остаётся висеть в памяти. Как добиться нормального закрытия окна?
program TestGLUT;
uses
Glut in 'Glut.pas',
GL in 'GL.pas',
GLu in 'GLu.pas';
procedure Draw; cdecl;
const
Alpha:Integer=0;
begin
glClear(GL_COLOR_BUFFER_BIT);
glLineWidth(3);
glColor3f(0, 0.6, 0.9);
glPushMatrix();
glRotatef(alpha, 0, 0, 1);
Alpha:=Alpha+4;
if Alpha > 359 then Alpha:=0;
glBegin(GL_LINES);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
glPopMatrix();
glFlush();
glutSwapBuffers();
end;
procedure Timer(Value:Integer); cdecl;
begin
glutPostRedisplay(); // Redraw windows
glutTimerFunc(40, Timer, 0); // Setup next timer
end;
procedure Visibility(State:Integer); cdecl;
begin
end;
procedure Reshape(Width,Height:Integer); cdecl;
begin
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1, 1, -1, 1);
glMatrixMode(GL_MODELVIEW);
end;
var
Cmd:array [0..20] of PChar;
Count:Integer;
I:Integer;
WinHandle:Integer;
begin
for I:=0 to ParamCount do
Cmd[i] := PChar(ParamStr(I));
Count := ParamCount + 1;
glutInit(@Count, @Cmd);
glutInitWindowSize(800,600);
glutInitWindowPosition(0,0);
glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE);
WinHandle:=glutCreateWindow('TestGLUT');
glutDisplayFunc(@Draw);
glutReshapeFunc(@Reshape);
glutVisibilityFunc(@Visibility);
glutTimerFunc(40,@Timer,0);
glutMainLoop;
end.
P.S.
Если я добавлю какой либо код после glutMainLoop, выполнится ли он?
d (2004-02-09 19:46:00) [1]www.sulaco.co.za
ArchangelM (2004-02-09 18:00:00) [2]А зачем тут GLUT??
Тут и OpenGL хватит!!
Буквально строчек 20 дописать...