- var
- FMaximumFrameRate: double;
- FLastSleep: double = 0;
- procedure LimitFrameRate(atd: double); //"atd" ist die Zeitdifferenz zwischen zwei Frames - inklusive der "Sleeptime"
- var
- sleeptime: Double;
- begin
- sleeptime := 1000 / FMaximumFrameRate - (atd - FLastSleep);
- if sleeptime > 0 then
- begin
- Sleep(trunc(sleeptime));
- FLastSleep := sleeptime;
- end else
- FLastSleep := 0;
- end;