Aztan jott a Pascal, de egy bizonyos kuszob alatt ez sem mukodik.
Nnamost, nemertem a kerdest. Egyebkent az ilyen rovid kepfelvillantas sokmindentol fugg. Peldaul a monitortol is igen, a kepfrissitesi frekvenciatol, meg a monitor<->videokartya kombinaciojatol.
Peldaul egy 75Hz-n mukodo monitornal 1000/75 = 13,3333 ezredmasodperc a legrovidebb ido, ami alatt meg tudsz jeleniteni valamit. Ez alatt a teljes frame-et ertem. Rovidebb ideig is kirakhatsz valamit, de akkor csak annyit ersz el, hogy a teljes kep nem fog latszodni, mert egyszeruen a monitornak nincs ideje kirajzolni, mar le is torolted.
Egyebkent ha olyat probalsz, hogy:
begin
kirakomakepet();
Delay(100);
letorlomakepet();
end;
Akkor ez tenyleg nem fog mukodni. Egyebkent Pascalban pl. OS-fuggo, hogy a Delay(); mennyi ideig var. Turbo Pascalban alapbol szar es megbizhatatlan volt, Free Pascalban pedig altalaban az OS legkisebb idoszelete az a minimalis ido, ami ido alatt visszater. De ugyanez igaz C-ben a POSIX fuggvenyekre is, egy usleep()-nel is ugyanigy OS fuggo a minimalis ido, ami alatt vissza tud terni.
Multitaszkos rendszerek alatt egyebkent is eleg katasztrofalis az ilyesmi, sokminden bezavarhat. De az a szokas, egyebkent ilyenkor, hogy bekapcsoljuk a vsyncet (azaz a monitor vertikalis visszafutasahoz idozitest) a videokartya drivereben, elokeszitjuk a kirajzolasra szant kepet egy nem lathato surface-n, majd kirakjuk, buffert valtunk (itt a kartya idozit a monitorhoz, ha bekapcsoltunk a vsyncet), aztan letoroljuk, es megint buffert valtunk.
Ekkor a kepunk pontosan 1 frame-ig volt lathato, - ami a fentebb vazoltak miatt - a kijelzon elerheto legrovidebb idoegyseg. Felteve ha eleg gyorsan le tudtuk torolni a buffert, illetve az alattunk futo multitaszkos OS nem pofazott belenk... A fenti algoritmust egyebkent barmilyen nyelvben viszonylag konnyen lehet implementalni, abszolut nem programnyelv fuggo. Javaban OpenGL hasznalataval (az OS megfelelo beallitasai mellett) elerheto ez, Pascalban ugyanigy (esetleg SDL vagy DirectX hasznalataval szinten), de C-ben, Assemblyben, vagy barmiben is. :)
Az algoritmus a lenyeg, meg az hogy a hardver kepessegeihez legyen igazitva, nem az, hogy miben irod. Na jo sok hulyeseget pofaztam ossze, de talan igy vilagosabb. :)
-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-