在delphi Firemonkey中计算FPS

时间:2013-06-29 06:21:37

标签: delphi firemonkey frame-rate

我正在使用两个计时器

Timer1.Interval = 1;
Timer2.Interval = 1000;

var
FPS: Integer = 0;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(FPS);
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Caption := IntToStr(FPS) + 'FPS';
  FPS := 0;
end;

我得到65 FPS。

计算FPS(每秒帧数)的最准确和最准确的方法是什么?

1 个答案:

答案 0 :(得分:2)

您不在此计算FPS。此代码计算每秒1 ms周期Windows计时器的事件。请注意,对于Window计时器,1毫秒的周期太短,因为典型的Windows响应时间(不知道它的确切英文单词)是10-20毫秒(65个事件= ~15毫秒)。因此,在Windows中,您可以精确地测量时间间隔,但要保证事件触发的准确时间要困难得多。

要计算FPS,您必须在准确测量的时间内计算所需的事件(阅读有关QueryPerformanceCounter函数等)。