pp :: Core :: GetTimeTicks () выходит из синхронизации с pp :: InputEvent :: GetTimeStamp () в системном спящем режиме

Я пытаюсь использовать «время тика» для отслеживания времени в моей игре PNaCl, потому что время игры не должно зависеть от того, как пользователь настраивает свои системные часы.

Я хотел бы использовать оба pp::Core::GetTimeTicks() а также pp::InputEvent::GetTimeStamp() запустить мой игровой симулятор. Логика выглядит так: когда происходит событие ввода, запускайте симуляцию, пока время игры не совпадет pp::InputEvent::GetTimeStamp() этого события. Когда происходит обратный вызов завершения рендеринга, запускайте симуляцию, пока время игры не совпадет pp::Core::GetTimeTicks(),

Это хорошо работает для начала, и этот сценарий использования, кажется, поддерживается, насколько я понимаю документацию, от pp::Core::GetTimeTicks():

Эти часы используются браузером при передаче некоторого времени события в модуль (например, с использованием поля PP_InputEvent :: time_stamp_seconds).


Однако, когда я перехожу в спящий режим и снова открываю его, эти два часа, кажется, не синхронизированы по времени, в течение которого компьютер спал. pp::Core::GetTimeTicks() кажется, перестала работать, пока система спала, в то время как pp::InputEvent::GetTimeStamp() кажется, работает. Входные события помечаются временем перед опорными часами на количество времени, в течение которого система находилась в спящем режиме.

Это побеждает использование обоих часов для отсчета времени. Обходной путь — использовать тактовую частоту ядра при запуске симуляции в ответ на событие ввода, но это может вызвать большую задержку между нажатиями клавиш и действием на экране. Другой обходной путь — просто не запускать симуляцию в ответ на входные события. Тем не менее, я хотел бы докопаться до этой загадки.

Это ошибка в реализации? Это ошибка в документации, которая говорит о том, что эти времена должны быть синхронизированы? Или я неправильно читаю документацию?


Я испытываю это на Chrome 33.0.1750.152 (Официальная сборка 256984) для Linux.

0

Решение

Это похоже на ошибку. InputEvent возвращает PP_TimeTicks. Временные тики должны иметь поведение, которое вы видите через Core :: GetTimeTicks ().

Но входные события возвращают вам время настенных часов. Это действительно правильно, так как событие ввода перца должно соответствовать событию DOM, а событие ввода DOM указывается как время с 1970 года (время настенных часов).

Поведение является правильным, но тип возвращаемого значения для GetTimeStamp должен быть PP_Time. Я подам это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]