Показать сообщение отдельно
Старый 10.06.2012, 21:17   #4
AVL
Разработчик
 
Регистрация: 27.01.2011
Адрес: Афипский
Сообщений: 419
Написано 100 полезных сообщений
(для 182 пользователей)
Ответ: Алгоритм отображение FPS

Да, точно.
В общем, так: под катом - полный код модуля с 2мя функциями подсчета фпс: (первая - отсюда (немного доработал))
unit fps;

interface
var
  t: integer;
  pr_fps, frames, pr_upd:integer;
function fps: integer;
function fps2: integer;

implementation

function fps: integer;
var
  dt: integer;
begin
  dt := GetRelativeTimeMs - t;
  //время с предыдущего вызова функции
  t := t + dt;
  if dt <> 0 then
    fps := 1000 div dt
  else
    fps := 1000;
end;

function fps2: integer;
var
  dt:integer;
begin
  dt := GetRelativeTimeMs - pr_upd;
  if dt<1000 then
    frames:=frames+1
  else begin
    pr_upd:=pr_upd+dt;
    pr_fps:=frames;
    frames:=0;
  end;
  fps2:=pr_fps;
end;


initialization
  t := GetRelativeTimeMs;
  pr_upd:=t;
  pr_fps:=0;
  frames:=0;
end.

В аттаче - скомпиленная из этого кода библиотека.
Вложения
Тип файла: rar Lib_fps.rar (657 байт, 726 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Atqt (10.06.2012)