| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Как задать количество FPS в исходном фильтре? |
| Автор: Teran 27.11.2007, 03:40 |
| Есть исходный фильтр получения скринов с экрана. Никто не знает Как можно задать колличество FPS в этом фильтре? - т.е. Мне наобходимо чтобы функция FillBuffer вызывалась например 3 раза в секунду (3 FPS) |
| Автор: sandland 2.12.2007, 02:15 |
| ну по логике как считается FPS...есть счетчик, который прибавляется +1 с каждым обновлением сцены,с каждой пройденной секундой значению FPS присваивается значение счетчика, и счетчик начинает крутиться заного...так вот ты можешь ввести доп. переменную, считающую милисекунды...когда счетчик равен 1/3 секунды - запускаем ф-цию и обнуляем сам счетчик... я так делаю, скорее всего можно как-то еще проще. |
| Автор: sandland 4.12.2007, 23:05 |
| я пишу на OpenGL...к примеру есть ф-ция, которая выполняется у тебя неприрывно с некоторым FPS так сказать, зависит от параметров процессора... double time=0; void display(void) { time+=0.001; // что-нибудь рисуем на экране..пусть тут даже ф-ции прорисовки всей сцены...к примеру drawScene(); glutSwapBuffers(); } где параметр time - это какой-то счетчик анимации...ты же можешь замедилть или ускорить анимацию...к примеру прибавляя к нему не 0.001 а 0.002 и тогда скорость анимации возрастет...ну само собой предполагается к примеру поворот на n градусов, где n=n(t); я делал так...задал константу real_fps - количество FPS которе мне нужно чтобы было всегда...не зависимо от процессора или размера окна.... считал текущий FPS каждую секнду...и скорость анимации умножал на отношение FPS и real_FPS тем самым ф-ция сама замедляла или ускоряла анимацию в зависимости от текущего FPS...в моем тетрисе меня такой вариант вполне устроил, но с точки зрения правильности, я не думаю, что это лучший вариант, с радостью бы послушал советы более опытных... если надо, могу тетрис скинуть. |
| Автор: Teran 5.12.2007, 12:39 | ||
Спасиб за ответ.... Но в DirectShow все подругому.... Интересно на форуме есть люди которые сталкивались и Исходными фильтрами под DirectShow??? |