![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перерисовка кадров [D5, Win95/98]
kopcap © (2003-12-15 18:14:00)Как лучше зделать перерисоку кадров ? Пробовал через Таймер в Делфи
но больше 19Fps неполучяется =(.
Intell (2004-01-09 15:14:00) [1]У меня есть компонент высокоточного таймера.
Сергей А (2004-01-09 08:13:00) [2]uses MMSystem; // Таймер - мультимедийный
В классе задаешь
private
...
TimerId : uint; // идентификатор таймера
protected
...
end;
Инициализация таймера (например - при создании формы):
procedure TfrmGL.FormCreate(Sender: TObject);
begin
...
TimerID := timeSetEvent (2{!!!}, 0, @TimeProc, 0,TIME_PERIODIC);
{ Здесь периодичность - 2 мс}
end;
Проседура обработки тика:
procedure TimeProc(uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD) stdcall;
begin
With frmGL do begin
...
InvalidateRect(Handle, nil, False);
end;
end;
Zeqfreed (2004-01-02 19:05:00) [3]procedure Drawing();
var
NTC,LTC : DWORD;
begin
while true do
begin
NTC := GetTickCount;
if NTC - LTC > 50 then
begin
//Рисуем тут;
LTC := NTC;
end;
end;
end;
Анонимщик (2003-12-24 18:15:00) [4]А, понял. Все дело в том, что таймер работает по тикам генератора, его частота какая-то там, не помню, но большая, и эта частота делится на значение, которое берется из не помню какого порта (по умолчанию оно 65535). Если это значение сделать меньшим, то и частота тиков увеличится. Под 2000 этого не сделаешь так просто. Тебе, видимо, нужно использовать соответствующий таймер какой-то. Посмотри на torry.net, например:
http://torry.net/timers.htm
kopcap (2003-12-24 17:38:00) [5]Да я просто в окне рисовал.
Стока Fps не из за того что я рисовал, просто таймер в Делфи больше 19 раз за секунду не срабатывает. Вот я и спрашиваю чё использовать можно место таймерв
Анонимщик (2003-12-24 17:35:00) [6]На весь экран?
Сколько байт занимает один экран?
kopcap (2003-12-24 17:32:00) [7]Анонимщик ©
Использовал OpenGL рисовал простой квадрат
Анонимщик (2003-12-24 13:15:00) [8]kopcap ©
А как ты рисовал, что использовал, какие размеры?
Pa5ha (2003-12-17 17:13:00) [9]Используй виртуальный таймер ApplicationEvents. Событие OnIdle.
Mihey (2003-12-15 19:56:00) [10]Побачай тут:
http://delphigfx.mastak.ru/2d/001/2d_1.htm