Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Перерисовка кадров   Найти похожие ветки 

 
kopcap ©   (2003-12-15 18:14) [0]

Как лучше зделать перерисоку кадров ? Пробовал через Таймер в Делфи
но больше 19Fps неполучяется =(.


 
Mihey ©   (2003-12-15 19:56) [1]

Побачай тут:
http://delphigfx.mastak.ru/2d/001/2d_1.htm


 
Pa5ha   (2003-12-17 17:13) [2]

Используй виртуальный таймер ApplicationEvents. Событие OnIdle.


 
Анонимщик ©   (2003-12-24 13:15) [3]

kopcap ©
А как ты рисовал, что использовал, какие размеры?


 
kopcap ©   (2003-12-24 17:32) [4]

Анонимщик ©
Использовал OpenGL  рисовал простой квадрат


 
Анонимщик ©   (2003-12-24 17:35) [5]

На весь экран?
Сколько байт занимает один экран?


 
kopcap ©   (2003-12-24 17:38) [6]

Да я просто в окне рисовал.
Стока Fps не из за того что я рисовал, просто таймер в Делфи больше 19 раз за секунду не срабатывает. Вот я и спрашиваю чё использовать можно место таймерв


 
Анонимщик ©   (2003-12-24 18:15) [7]

А, понял. Все дело в том, что таймер работает по тикам генератора, его частота какая-то там, не помню, но большая, и эта частота делится на значение, которое берется из не помню какого порта (по умолчанию оно 65535). Если это значение сделать меньшим, то и частота тиков увеличится. Под 2000 этого не сделаешь так просто. Тебе, видимо, нужно использовать соответствующий таймер какой-то. Посмотри на torry.net, например:
http://torry.net/timers.htm


 
Zeqfreed   (2004-01-02 19:05) [8]

procedure Drawing();
var
NTC,LTC : DWORD;
begin
while true do
 begin
  NTC := GetTickCount;
  if NTC - LTC > 50 then
   begin
    //Рисуем тут;
    LTC := NTC;
   end;
 end;
end;


 
Сергей А   (2004-01-09 08:13) [9]

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;


 
Intell ©   (2004-01-09 15:14) [10]

У меня есть компонент высокоточного таймера.



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

Форум: "Media";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
1-1081024810
Arturchik
2004-04-04 00:40
2004.04.18
А как закрывая окно крестиком выполнить что-нибудь?


4-1076302452
r9000
2004-02-09 07:54
2004.04.18
Управление другой программой


3-1079622694
Masha Streltsova
2004-03-18 18:11
2004.04.18
Picklist в DBGrid е


1-1080554108
tytus
2004-03-29 13:55
2004.04.18
StringGrid_


7-1077121572
Макын
2004-02-18 19:26
2004.04.18
Реестр





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский