Текущий архив: 2007.02.11;
Скачать: 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 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.056 c