Pull to refresh
84
Эреб@Ereb

Пользователь

24
Subscribers
Send message
А я не привередливый — что под рукой было, тем и патчил)
Спасибо за ссылку. Однако все примеры таймеров, приведённые в указанной статье используют только GetTickCount. О взаимодействии с QPF и QPC там не упоминается. Интересно, этот метод вообще ещё используется или он уже «вышел из моды»?

Согласно документации Microsoft частота, возвращаемая QPF определяется при старте операционной системы и больше не меняется. Но в этом обсуждении упоминаются возможные ошибки имплементации QPF на некоторых ситемах и даётся такой совет:
Как правило, timeGetTime лучше всего подходит для тайминга игр — у GetTickCount недостаточно высокое разрешение, а от QPC и RDTSC одни неприятности.
Было бы интересно услышать мнение опытного разработчика игр по этому вопросу.
К сожалению, я не имею опыта в разработке игр и не в курсе всех деталей тайминга игрового цикла. Однако про QueryPerformanceFrequency на одном форуме (нем.) писали, что на современных процессорах возвращаемое им значение может быть меньше настоящей частоты.

Я ставил брейк на вызов QPF и пытался как-то манипулировать значения, но там всё проходит через указатели и методом тыка я там уже не смог ничего решить)

Xref по QPC показывает только два вызова — один находится рядом с QPF и проходится единожды при открытии новой игры. На счёт второго я не углублялся, возможно он в игровом цикле.

При этом xref по GetTickCount выдаёт целую простыню вызовов и многие из них в игровом цикле. Как именно это всё взаимодействует мне тоже интересно узнать…
Спасибо. Да, было бы проще, но тогда всё равно будет выполнена loc_4D1AAA вместе с вызовом ProcessMessages, который приводит к багам во время сетевой игры.

Information

Rating
Does not participate
Location
Германия
Date of birth
Registered
Activity