Firefox как-то взаимодействует с моими таймерами?!?!Это безумие ^^ - PullRequest
1 голос
/ 18 апреля 2011

У меня проблема с таймерами в моей Win32 C ++ DirectX-игре (небольшая демонстрация).Я использую «timeGetTime», чтобы получить текущее время и использовать его для воспроизведения анимации или для логики с использованием дельта-времени (я также использую константу для нормализации при анимации).Иногда я использую тикрейт всего 2 миллисекунды.Я использую только ULONG при работе со временем.Игра работает просто отлично, но если я запустил Mozilla Firefox и запустил игру, ведь игра очень быстрая (анимация и логика игры).Это как быстрая пересылка.Странно то, что кажется, что это не влияет на несколько таймеров.У кого-нибудь есть подсказка?Какая связь между Firefox и моими таймерами?После выхода из Firefox он остается прежним, но через некоторое неопределенное время или после перезагрузки компьютера он возвращается в нормальное состояние.Любые предложения приветствуются, даже если это длинный выстрел.Спасибо.

1 Ответ

3 голосов
/ 18 апреля 2011

Да, точность по умолчанию для TimeGetTIme составляет 5 мс или более.

Это можно изменить с помощью вызовов timeBeginPeriod и timeEndPeriod.Изменение точности TimeGetTime влияет на все работающие приложения.Я предполагаю, что Firefox вызывает те функции, которые влияют на ваше приложение.

Перейдите на использование методов QueryPerformanceCounter / QueryPerformanceFrequency, которые обеспечивают синхронизацию с высоким разрешением и не будут зависеть от проблем TimeGetTime.

EDIT: Пара ссылок, которые показывают, как использовать функции.

http://www.programmersheaven.com/mb/windows/311148/311148/using-queryperformancecounter/

А также обратите внимание на замечания на странице MSDN: http://msdn.microsoft.com/en-us/library/ms644904(v=vs.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...