С частотой Services.Actions 50мс предел FPS ~ 16, а нужно 25. Подскажите, пожалуйста, есть ли простой способ регулировать частоту обновления Actions, или придется пользоваться циклами для этих целей? Кто нибудь решал подобную проблему?
Код:
MODULE MyFpstest
IMPORT Services, Fonts, Ports, Views, Properties, Models, Strings;
TYPE
Action = POINTER TO RECORD (Services.Action) END;
View = POINTER TO RECORD (Views.View) END;
VAR
time: LONGINT;
action: Action;
font: Fonts.Font;
fpsR: REAL;
v: View;
PROCEDURE (count: Action) Do;
BEGIN
fpsR := 1000/(Services.Ticks() - time);
time := Services.Ticks();
Services.DoLater(action, Services.Ticks() + Services.immediately);
Views.Update(v, TRUE);
END Do;
PROCEDURE (v: View) Restore (f: Views.Frame; l, t, r, b: INTEGER);
VAR summ: ARRAY 100 OF CHAR;
BEGIN
Strings.RealToStringForm(fpsR, 7, 0, 0, " ", summ);
f.DrawString (0, 50*f.dot, Ports.black, "fps = " + summ, font);
END Restore;
PROCEDURE Start*;
BEGIN
font := Fonts.dir.This("Arial", 15*Ports.point, {}, Fonts.normal);
NEW(v); Views.OpenAux(v, "FPS test");
NEW(action); Services.DoLater(action, Services.now)
END Start;
BEGIN
END MyFpstest.