Вниз
Скачать: CL | DM;

Кадры анимации   Найти похожие ветки 

 
h8394E   (2006-06-15 03:44) [0]

Доброго времени суток!
Вот, уже где-то 2 недели прошло после того как я начал D3D изучать... И вот, на чём я застрял... Как заставить кадры обновляться Максимум раз в секунду (т.е. если система позволяет - 300 раз, а если - нет, то 5 (ну это примерно))...

Я так понимаю, нужно вывод делать в цикле обработки сообщений (пишу на WinAPI) - где-то перед TranslateMessage(); но тогда если мышкой не двигать, то кадр не обновится... А если свой цикл организовать, то сообщения не будут обрабатываться...


 
Vasiliy   (2006-06-15 09:33) [1]

Обычно это делается в обработчике таймера.
А уж таймеру какую угодно частоту обновления можно задать.


 
Sapersky   (2006-06-15 14:37) [2]

Примерно так:

While (not bQuit) do
 If PeekMessage(msg, handle, 0, 0, PM_REMOVE) then begin
   TranslateMessage(msg);
   DispatchMessage(msg);
 end else begin
   // рисовать здесь
 end;

Но "максимум" раз в секунду - это часто не совсем то, что нужно, т.к. на разных машинах всё будет крутиться с разной скоростью.
Чтобы было одинаково, нужно либо выводить по таймеру (если максимальные 20 FPS, которые он может обеспечить, достаточно), либо смотреть, сколько времени заняла последняя отрисовка и в соответствии с этим корректировать величину смещения при анимации.


 
h8394E   (2006-06-15 17:29) [3]

Ну, вот как раз 2й случай мне больше подходит... (я на WinAPI пишу, поэтому мне стандартный таймер недоступен)... Причём, так я и писал, мне нужны не постоянные FPS, а переменные...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.029 c
3-1163930449
KIT
2006-11-19 13:00
2007.02.11
ПОМОГИТЕ С ЗАПРОСОМ


15-1169130890
Stanislav
2007-01-18 17:34
2007.02.11
Кто настраивал GPS/GPRS трекеры?


1-1166632036
dreamse
2006-12-20 19:27
2007.02.11
Ошибка загрузки иконок в разных OS


2-1169542897
pavel_guzhanov
2007-01-23 12:01
2007.02.11
Диалог выбора директории


8-1150711986
Sahalin
2006-06-19 14:13
2007.02.11
Midi




   Наверх