GI.FrameLimiter

From SunFlurry wiki
Jump to: navigation, search
  FrameLimiter (Общие функции объекта GI)
Объект:Объект GI
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные аргументы
Визуальность:Да

Функция изменяет режим ограничения количества кадров окном GI. По умолчанию такой режим не меняется и может зависеть от графического драйвера, поэтому, рекомендуется вызвать эту функцию для окна GI по крайней мере один раз. Некоторые графические драйверы могут не поддерживать режимы синхронизации с вертикальной разверткой экрана, в этом случае, можно использовать режим ограничения кадров по их количеству. В выделенном цикле прорисовки, ожидание, необходиомое для режима ограничения будет выполняться внутри функции InitiateRedraw. См. также Объект GI.

Синтаксис

GI.FrameLimiter(<Режим ограничения количества кадров (INT)>=0,<Параметры режима (INT)>)

Аргументы

  • <Режим ограничения количества кадров (INT)> - (необязательный аргумент) Аргумент задает режим ограничения количества кадров в секунду. Доступны следующие значения:
    • 0 (по умолчанию) -- не активировать режим ограничения кадров. Функция InitiateRedraw будет заканчиваться максимально быстро. Второй аргумент игнорируется.
    • 1 -- режим синхронизации с вертикальной разверкой экрана. Количество кадров в секунду будет зависеть от режима монитора. Второй аргумент игнорируется.
    • 2 -- режим синхронизации кратный скорости вертикальной разверки экрана. Второй аргумент будет задавать порядок кратности. К примеру, если второй аргумент будет равен 2, за один кадр будет происходить два цикла обновления экрана. Если вертикальная развертка экрана 60 герц, значит такой режим будет обновлять кадр 30 раз в секунду.
    • 3 -- режим ограчения количества кадров. Второй аргумент задает количество кадров в секунду для ограничения, оно может не зависить от режима работы монитора.
    • 4 -- режим ограчения количества кадров и вертикальной развертки экрана. Второй аргумент задает количество кадров в секунду для ограничения, оно может не зависить от режима работы монитора. При этом синхронизация с вертикальной разверткой экрана также производится.
  • <Параметры режима (INT)> - (необязательный аргумент) Назначение аргумента зависит от режима ограничения, заданного первым аргументом.

Примеры

//Инициализация объекта ''GI''
aGI:=GI.Init(Form.Окно,,1);

//Автоматически захватывать мышь
aGI.MouseMode(1);

//Указание на функции обработчиков событий
aGI.LinkEvent("ONDRAW","OnDraw",1,СпКоорд);
aGI.LinkEvent("ONNEWINPUT","OnNewInput",1,СпУскор);

//Включить режим фильтрации MSAA
aGI.AntiAliasing(1);

//Включить режим ограничения кадров по развертке экрана
//Если драйвер не поддерживает его, включить ограничение 60 кадров в секунду
Try
  aGI.FrameLimiter(1);
Except
  aGI.FrameLimiter(3,60);
EndTry;

//Включить 3D перспективу, FOV 90
aGI.WorldPerspective(0,90,0.1,1000);

...