2013-07-06 6 views
0

ОК, в этом проблема. В настоящее время я пишу OCX/NPAPI-плагин для своей игры, поэтому моя игра может работать в веб-браузерах. В текущей реализации я использую SetTimer для «галочки» обновления и рендеринга моей игры (DLL плагина), но я считаю, что FPS (кадр в секунду) может быть не больше 64 на моей машине. Я обнаружил, что это проблема таймера Windows, поскольку таймер может быть вызван только процессом peeking сообщения реализации плагина браузера, который я не могу изменить, другими словами, таймер не может быть быстрее скорости обработки процесса браузера.Как ускорить частоту кадров приложения


Так что мой вопрос,

  1. Могу ли я разорвать скорость 64 кадров ограничивается браузером сообщение обработки или ускорить процедурный таймер?
  2. Или я должен переместить свою игру в отдельный поток, но как обрабатывать окно сообщения (ввод пользователя, изменение размера окна и т. Д.), И игровой поток может получить.

благодарим заранее!

ответ

1

Если вы используете оконный плагин, то лучше всего делать все рендеринг и т. Д. На отдельной ветке. Просто используйте какой-то потокобезопасный режим или что-то, чтобы передать оконные сообщения по потокам; забава с мьютексами, конечно, но это не так уж сложно.

Если вы используете FireBreath (что упростит для вас много), вы можете использовать класс FB :: SafeQueue. Если вы не используете FireBreath, вы можете украсть его, хотя это требует повышения, но на самом деле не так сложно создать очередь сообщений в потоковом режиме.

Если вы на главной теме, пытаясь выполнить всю логику игры, у вас наверняка будут проблемы с производительностью.

Если это плагин без окон, вам не повезло.

+0

«Просто используйте какую-то поточную сеть или что-то, чтобы передать окно через потоки» - Не могли бы вы сделать это более конкретным? Я действительно не знаю, как «перенаправить» сообщение Windows в другой поток. Благодаря! – karlzhang

+0

Вы не можете «перенаправить» сообщение в другой поток; вы создаете свой собственный механизм передачи сообщений. В событиях Windows нет ничего святого. Создайте структуру, у вас есть очередь, содержащая этот тип структуры и т. Д. – taxilian

Смежные вопросы