Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перерисовка кадров [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо