Есть ли программный способ изменить vsync во время выполнения в Haxe/Starling?

Я вижу способ сделать это через project.xml, но я не вижу способа отключить/включить vsync во время выполнения (например, иметь параметр в меню настроек или что-то в этом роде). Поиск не дал мне никаких ответов. :(


person tson    schedule 27.04.2019    source источник


Ответы (1)


Это будет зависеть от Lime, на основе которого построен OpenFL. Сам Lime построен на основе SDL, но вы можете получить доступ к API SDL только косвенно через Lime.

Просматривая исходники Lime и историю коммитов, вы видите, что то, что вам нужно, сейчас не поддерживается — флаг vsync передается только при начальном вызове CreateWindow(), похоже, нет способа изменить его постфактум. / без создания нового окна.

Этот же вопрос обсуждался на форумах OpenFL несколько лет назад. Вот идея того, как это можно реализовать в Lime, пересоздав рендерер SDL с другими флагами. (с указанием SDL_RENDERER_PRESENTVSYNC вместо его указания) было предложено. Если вам нужна эта функция, вы можете попробовать реализовать ее самостоятельно и создать запрос на вытягивание.

person Gama11    schedule 01.05.2019