====== Замер производительности с помощью FPS ======
Как быстро выполняется приложение? Под производительностью мы понимаем количество кадров в секунду. Этот способ замера не является самым оптимальным, мы хотим только получить относительную оценку.
GLUT обеспечивает нас функцией, позволяющей нам запрашивать различные параметры системы, одна из которых кол-во милисекунд от последнего вызова //glutInit//. Синтаксис функции таков:
function glutGet (state: GLenum): Integer; stdcall;
Параметр //state// указывает на требуемое значение. Нам нужен аргумент //state// со значением //GLUT_ELAPSED_TIME//.
Инициализация:
var
time: integer;
...
time := glutGet (GLUT_ELAPSED_TIME);
В данном случае //glutGet (GLUT_ELAPSED_TIME)// имеет аналог в Windows в функции //GetTickCount//. Чтобы не повредить кроссплатформенности кода, рекомендуется избавляться от наличия //GetTickCount//.
Следующий кусок кода поместим в зарегистрированную процедуру //idle//, которая и будет выполнять работу:
const
time: integer;
var
frame: integer = 0;
timebase: integer = 0;
...
inc (frame);
time := glutGet (GLUT_ELAPSED_TIME);
if (time - timebase > 1000)
begin
fps := frame*1000.0 / (time-timebase);
timebase := time;
frame := 0;
end;
...
===== Ссылки =====
[[http://www.lighthouse3d.com/opengl/glut/index.php?fps|Computing Frames per Second]]