Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Почему не получается использовать два таймера?   Найти похожие ветки 

 
Карлсон ©   (2002-07-11 22:40) [0]

Подскажите плиз, почему в DelphiX не получается использовать два DXTimer"а одновременно?
Если на одном осуществлять вывод графики, а другой будет просто активен с заданным интервалом, то все в порядке.
Если же повесить какое-нить событие на дополнительный таймер, то вся сцена пропадает.
в чем дело?
неужели нельзя использовать второй DXTimer просто как обычный Timer из VCL ?


 
Карлсон ©   (2002-07-12 23:38) [1]

Люди, ну отзовитесь же!!!!


 
NailMan ©   (2002-07-13 03:26) [2]

Попробуй сделать обычный Timer последством WinAPI.
я их 5 штук запустил, и ни одного глюка.


 
Карлсон ©   (2002-07-13 13:12) [3]

обычный то я делаю, а вот все же почему нельзя???
ну очень меня этот вопрос интересует.


 
msts   (2002-07-13 17:45) [4]

я теорию не знаю, хотя практика использования DirectX под Delphi была по этому могу сказать умозрительно - дхтаймер только так называется и в своей основе не имеет ничего общего (кроме названия) с обычным таймером, представь схему работы дх -
основной поток обработки данных - сгенерить буфер - вывести на экран - снова сгенерить и т.д., есть окно (только одно) в котором отоброжается буфер, и все

теперь посмотрим исходники:

procedure TCustomDXTimer.Resume;
begin
FOldTime := TimeGetTime;
FOldTime2 := TimeGetTime;
Application.OnIdle := AppIdle;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
end;
Application.OnIdle - вызывается когда программа ожидает сообщений
AppIdle - собственно и есть DX OnTimer;
таким образом второй таймер накрывает процедуру первого

отсюда можно сделать вывод - что если программ чем то занята
- то и кадры не генерятся
что заметно если взять окно за каптион


 
msts   (2002-07-13 17:56) [5]

PS: Собственно теперь мне понятно почему (в свое время) существенно падали FPSы когда обработку движения я выносил из дхтаймера в другой вцлтаймер (забивалась очередь сообщений - в результате "OnIdle" наступало реже) хотя в обычном режиме при адекватной загрузки процессора другим приложением оставались прежними



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

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
7-11519
Almaz
2002-09-01 02:42
2002.11.04
Таблица импорта


1-11238
Dankin
2002-10-25 02:37
2002.11.04
Подскажите плз. Как подкрасить числа на календаре, несколько штук


1-11307
id_privin
2002-10-22 15:16
2002.11.04
Как победить Invalid class typecast в DLL


14-11477
Иришка
2002-10-16 13:11
2002.11.04
Помогите бедной девушке


6-11364
novato
2002-09-05 07:56
2002.11.04
Socket+proxy=отправка сообщений))