Ограничение фпс... Как быть в XP?

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Ограничение фпс... Как быть в XP?

Сообщение Vovik » 31.01.2005 (Пн) 8:33

Ну, казалось бы ограничение фпс, не такая уж сложная штука... Просто выполняем пустой цикл. Но вот в XP эта штука не катит.. Пример: без ограничения (а я вывожу только одну линию) проект валит около 1000 фпс. В 98, Me - ставлю 100 - все класс, валит около 99-101... а в XP - 60 и не больше, хоть ты тресни... меньше могёт, а больше - никак. :cry: Ну да ладно. Ставлю таймер с интервалом в 10 млс.. в 98 - около 300 фпс, а в XP - за 60 никак. :cry: Так как же быть? Мне нужно где-то до 100 скинуть..... :roll:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 01.02.2005 (Вт) 9:52

Пустым циклом ограничивали FPS только под DOS-ом, и то неграмотно считалось. Таймер не пойдет, в Win9X он работает очень неточно (с точностью до 1/19 сек.). Если только в WinXP, и не требуется супер точность, то можно таймером. А лучше запусти поиск по конференции по слову "QueryPerformance". Это уже не раз обсуждалось.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 01.02.2005 (Вт) 14:34

Mikle писал(а):Пустым циклом ограничивали FPS только под DOS-ом, и то неграмотно считалось. Таймер не пойдет, в Win9X он работает очень неточно (с точностью до 1/19 сек.). Если только в WinXP, и не требуется супер точность, то можно таймером. А лучше запусти поиск по конференции по слову "QueryPerformance". Это уже не раз обсуждалось.
Чет поиск ничего не дает :cry: С QueryPerformance- я знаком... но как же ограничивать фпс, если не пустым циклом??? :roll:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 01.02.2005 (Вт) 16:30

Так понял, цикл не для задержки, а для ожидания, внутри DoEvents. Тогда все правильно, оно должно работать в любой винде. Видимо в XP не работает по какой-то другой причине.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 01.02.2005 (Вт) 17:50

Mikle писал(а):Так понял, цикл не для задержки, а для ожидания, внутри DoEvents. Тогда все правильно, оно должно работать в любой винде. Видимо в XP не работает по какой-то другой причине.
Нет, это XP. Попробуй сам, посмотрим, что я тебя выйдет...... :roll:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 02.02.2005 (Ср) 3:17

попробуй посавить во внутренний цикл DoEvents - может поможет...
ХЎ

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 04.02.2005 (Пт) 0:44

может я чего не понял но пустой цикл в ХР ограничивает фпс
покрайней мере в таком виде

While a = True
Me.Line (0, 0)-(900, 900)
fps = fps + 1
For i = 0 To 830000
Next i
DoEvents
Wend

а как с пустым циклом определить производительность ведь у всех разные компы (в таком виде у меня 117 фпс )


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList