![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не получается использовать два таймера? [D6, Win95/98]
Карлсон © (2002-07-11 22:40:00)Подскажите плиз, почему в DelphiX не получается использовать два DXTimer"а одновременно?
Если на одном осуществлять вывод графики, а другой будет просто активен с заданным интервалом, то все в порядке.
Если же повесить какое-нить событие на дополнительный таймер, то вся сцена пропадает.
в чем дело?
неужели нельзя использовать второй DXTimer просто как обычный Timer из VCL ?
msts (2002-07-13 17:56:00) [1]PS: Собственно теперь мне понятно почему (в свое время) существенно падали FPSы когда обработку движения я выносил из дхтаймера в другой вцлтаймер (забивалась очередь сообщений - в результате "OnIdle" наступало реже) хотя в обычном режиме при адекватной загрузки процессора другим приложением оставались прежними
msts (2002-07-13 17:45:00) [2]я теорию не знаю, хотя практика использования DirectX под Delphi была по этому могу сказать умозрительно - дхтаймер только так называется и в своей основе не имеет ничего общего (кроме названия) с обычным таймером, представь схему работы дх -
основной поток обработки данных - сгенерить буфер - вывести на экран - снова сгенерить и т.д., есть окно (только одно) в котором отоброжается буфер, и все
теперь посмотрим исходники:
procedure TCustomDXTimer.Resume;
begin
FOldTime := TimeGetTime;
FOldTime2 := TimeGetTime;
Application.OnIdle := AppIdle;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
end;
Application.OnIdle - вызывается когда программа ожидает сообщений
AppIdle - собственно и есть DX OnTimer;
таким образом второй таймер накрывает процедуру первого
отсюда можно сделать вывод - что если программ чем то занята
- то и кадры не генерятся
что заметно если взять окно за каптион
Карлсон (2002-07-13 13:12:00) [3]обычный то я делаю, а вот все же почему нельзя???
ну очень меня этот вопрос интересует.
NailMan (2002-07-13 03:26:00) [4]Попробуй сделать обычный Timer последством WinAPI.
я их 5 штук запустил, и ни одного глюка.
Карлсон (2002-07-12 23:38:00) [5]Люди, ну отзовитесь же!!!!