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

Торможение DelphiX приложений под WindowsXP   Найти похожие ветки 

← →
3d[Power] ©   (2003-04-10 19:19) [0]

Есть такая проблема, при использовании DXTimer, с интервалом 20 (50fps) в хп все это проседает до 32fps. Если таймер заменить на свой thread, то все ок, но это не помогает для оконных delphix программ.

Собственно вопрос: как ускорить (вернуть нормальную скорость (50fps)) оконным delphix приложениям под WinXP?


← →
Darthman   (2003-04-10 19:47) [1]

Например отказаться от альфаблендинга.


← →
Darthman   (2003-04-10 19:50) [2]

И вообще, я бы поостерегся от использования всякого рода таймеров в игрушках. Неправильно это все.


← →
АФ   (2003-04-11 09:15) [3]

У меня еще хуже. Интервал в DXTimer установлен в 0. На некоторых ХР возникают очень сильные тормоза. Буквально 1fps. Это при том что компьютеры мощные с хорошими ускорителями.

Как побороть ?


← →
Psibug ©   (2003-04-11 13:55) [4]

Сам свидетель того, о чём спрашиывает Повер - на машине друга это происходит. Это не просто 32 кадра вместо 50: всё как то плавно, медленно, словно в замедленном replay"е. Но нет мерцания экрана или чего-то вроде этого. может введёшь команду setiterationlength 1<Value<20 ,DefaultValue=20 и с помощью этой команды будут регулировать интервал таймера те, вроде этого несчастного, у кого эта трабла?
Любой неизвращённый таймер использует SetTimer/KillTimer.
А навороченые могут и свой поток создавать.
DXTimer, наверное тоже навороченый. VCLовский таймер использует для создаваемых таймеров создаваемыемые HWND (идентификаторы окон: 1 таймер - 1 окно).
>Dartman
Согласен насчёт таймеров. Но стиль надо соблюдать (это я о блендинге). Да и вообще, помоему, в NFK блендинг можно через консоль вырубить или через конфиг.
>АФ
Нельзя ставить таймер на 0. Это любые винды <censored>.См. ниже

Вот как обновляются свойства VCLовского таймера:

KillTimer(FWindowHandle, 1);
if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then
raise EOutOfResources.Create(SNoTimers);


По моему, надо было тебе, Повер, использовать while и Sleep (то. что я писал об этой процедуре в конференции winapi - это ошибка. Просто скорость работы OpenGL от одной машины к другой разнится более, чем у Direct3D).


← →
Мор   (2003-04-13 03:34) [5]

А у меня так: если поставить интервал 0 - идут тормоза, а если 1 или выше - то скорость соответствует!



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

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



Память: 0.46 MB
Время: 0.018 c
14-51448
k-man
2003-09-28 22:17
2003.10.16
ЖК и все о нем


3-51108
diokant
2003-09-24 13:27
2003.10.16
Как обеспечить отображение значения поля, измененного триггером


3-51115
MakNik
2003-09-25 10:04
2003.10.16
BACKUP DATABASE


14-51487
_Nicola_
2003-09-26 17:29
2003.10.16
Про суверенное государство Зимбабве


7-51543
Duncan
2003-08-04 09:49
2003.10.16
Можно ли определить количество оперативки?




   Наверх