Форум: "Игры";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизТорможение 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 вся ветка
Форум: "Игры";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c